#include <bits/stdc++.h>
using namespace std;
const long long N=1e2+10;
const long long P=1e9+7;
struct mat{
long long a[N][N];
mat(){
memset(a,0,sizeof(a));
}
};
long long n,k;
mat operator* (mat &a,mat &b){
mat c;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
c.a[i][j]+=(a.a[i][k]*b.a[k][j])%P;
}
}
}
return c;
}
mat st(mat x,int l){
l--;
mat ans=x;
while(l>0){
if(l&1) ans=ans*x;
x=x*x;
l=l>>1;
}
return ans;
}
mat a,b,c;
int main( ){
cin>>n>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>a.a[i][j];
}
}
b=st(a,k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<b.a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}