#include<bits/stdc++.h>
using namespace std;
#define N 1000001
#define mo 1000000000+7
struct node{
long long int a[101][101];
};
node ans,a;
int n,k;
node operator *(const node &x,const node &y){
node z;
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
z.a[i][j]=(z.a[i][j]+x.a[i][k]*y.a[k][j]%mo)%mo;
return z;
}
int main(){
for(int i=1;i<=n;i++)ans.a[i][i]=1;
cin>>n>>k;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>a.a[i][j];
while(k){
if(k&1)ans=ans*a;
a=a*a;
k>>=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
cout<<ans.a[i][j]<<" ";
cout<<endl;
}
return 0;
}
求助各路神仙QWQ