#include <stdio.h>
#define p 1000000007
struct matrix{
long long m[101][101];
};
typedef struct matrix Matrix;
long long n;
Matrix work(Matrix a,Matrix b)
{
Matrix tmp;
for (long long i=1;i<=n;i++)
for (long long j=1;j<=n;j++)
{
tmp.m[i][j]=0;
for (long long k=1;k<=n;k++)
tmp.m[i][j]=(tmp.m[i][j]+a.m[i][k]*b.m[k][j])%p;
}
return tmp;
}
Matrix ksm(Matrix a,long long m)
{
Matrix tmp=a,b=a;
m--;
while (m>0)
{
if (m%2==1) tmp=work(b,tmp);
b=work(b,b);
m=m/2;
}
return tmp;
}
int main()
{
long long k;
Matrix a;
scanf("%lld%lld",&n,&k);
for (long long i=1;i<=n;i++)
for (long long j=1;j<=n;j++) scanf("%lld",&a.m[i][j]);
a=ksm(a,k);
for (long long i=1;i<=n;i++)
{
for (long long j=1;j<=n;j++)
printf("%lld ",a.m[i][j]);
printf("\n");
}
return 0;
}