#include <iostream>
using namespace std;
const long long mod=1e9+7;
const long long N=105;
long long a[N][N];
long long ans[N][N];
long long n,k;
void quick_pow(){
while(k>0){
if(k&1){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int z=1;z<=n;++z)
ans[i][j]=(ans[i][j]+a[i][z]*a[z][j])%mod;
}
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int z=1;z<=n;++z)
a[i][j]=(a[i][j]+a[i][z]*a[z][j])%mod;
k>>=1;
}
}
int main(){
cin>>n>>k;
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
cin>>a[i][j];
}
}
for(int i=1;i<=n;++i) ans[i][i]=1;
quick_pow();
for(int i=1;i<=n;++i){
for(int j=1;j<=n;++j){
cout<<ans[i][j]%mod<<" ";
}
cout<<endl;
}
return 0;
}