#include<bits/stdc++.h>
using namespace std;
const int N=101;
const int mod=1000000007;
struct matrix{
int m[N][N];
};
matrix operator * (const matrix& a,const matrix& b){
matrix c;
memset(c.m,0,sizeof(c.m));
for(int i=0;i<N;i++){
for(int j=0;j<N;j++){
for(int k=0;k<N;k++){
c.m[i][j]=(c.m[i][j]+a.m[i][k]*b.m[k][j])%mod;
}
}
}
return c;
}
matrix ans;
void pow_matrix(matrix a,long long n){
memset(ans.m,0,sizeof(ans.m));
for(int i=0;i<N;i++) ans.m[i][i]=1;
while(n){
if(n&1) ans=ans*a;
a=a*a;
n>>=1;
}
}
int main(){
int n,k;
matrix A;
cin>>n>>k;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) cin>>A.m[i][j];
}
pow_matrix(A,k);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++) cout<<ans.m[i][j]%mod<<" ";
cout<<endl;
}
return 0;
}