#include<bits/stdc++.h>
#define int long long
using namespace std;
struct juzhen{
public:
int a[201][201];
};
juzhen p;
juzhen juzhenchengfa(juzhen x,juzhen y){
juzhen res;
memset(res.a,0,sizeof(res.a));
for(register int i=0;i<2;i++)
for(register int j=0;j<2;j++)
for(register int k=0;k<2;k++)
res.a[i][j]=(res.a[i][j]+(x.a[i][k]*y.a[k][j])%1000000007)%1000000007;
return res;
}
juzhen juzhenkuaisumi(juzhen x,int y){
juzhen res;
res.a[0][0]=-1;
while(y>0){
if(y&1){
if(res.a[0][0]==-1)res=x;
else res=juzhenchengfa(res,x);
}
x=juzhenchengfa(x,x);
y>>=1;
}
return res;
}
signed main(){
int n,k;
cin>>n>>k;
for(register int i=0;i<n;i++)
for(register int j=0;j<n;j++){
cin>>p.a[i][j];
p.a[i][j]%=1000000007;
}
juzhen ans=juzhenkuaisumi(p,k);
for(register int i=0;i<n;i++){
for(register int j=0;j<n;j++)cout<<ans.a[i][j]%1000000007<<" ";
cout<<"\n";
}
}