#include<iostream>
#include<cstring>
#define int long long
using namespace std;
const int N=105;
const int mod=1e9+7;
int n,k;
int a[N][N];
struct mu{
int a[N][N];
int n;
mu(){
memset(a,0,sizeof a);
n=0;
}
}A;
mu operator *(const mu & A,const mu & B){
mu res;
res.n=A.n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
res.a[i][j]=(res.a[i][j]+A.a[i][k]*B.a[k][j]%mod)%mod;
res.a[i][j]%=mod;
}
}
}
return res;
}
mu pow(mu B,int k){
mu res;
res.n=n;
for(int i=1;i<=n;i++){
res.a[i][i]=1;
}
while(k){
if(k&1){
res=res*B;
}
B=B*B;
k>>=2;
}
return res;
}
signed main(){
cin>>n>>k;
A.n=n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>A.a[i][j];
}
}
mu ans=pow(A,k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<ans.a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
膜拜大佬