#include<bits/stdc++.h>
using namespace std;
const int MOD=1e9+7;
int n;
long long k;
struct matrix{
long long m[105][105];
matrix(){memset(m,0,sizeof m);}
}s,t;
matrix operator*(const matrix& a,const matrix& b){
matrix c;
for(int i=1;i<=105;i++)
for(int j=1;j<=105;j++)
for(int kk=1;kk<=105;kk++)
c.m[i][j]=(c.m[i][j]+a.m[i][kk]*b.m[kk][j]%MOD)%MOD;
return c;
}
matrix pow_matrix(matrix a,long long b){
matrix ans;
for(int i=1;i<=105;i++) ans.m[i][i]=1;
while(b){
if(b&1) ans=ans*a;
a=a*a;
b>>=1;
}
return ans;
}
int main(){
scanf("%d %lld",&n,&k);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%lld",&s.m[i][j]);
t=pow_matrix(s,k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) printf("%lld ",t.m[i][j]%MOD);
printf("\n");
}
return 0;
}
记录,求调~