#include<bits/stdc++.h>
using namespace std;
const long long MOD=10e9+7;
long long m[202][202],mid[202][202],b[202][202];
long long n,k;
void pow(long long kk)
{
for(int i=1;i<=n;++i)
b[i][i]=1;
while(kk)
{
memset(mid,0,sizeof(mid));
if(k&1)
{
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
mid[i][j]=(mid[i][j]%MOD+((b[i][k]%MOD)*(m[k][j]%MOD))%MOD)%MOD;
for(int i=1;i<=n;++i)
for(int j=1;i<=n;++j)
b[i][j]=mid[i][j];
}
memset(mid,0,sizeof(mid));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
for(int k=1;k<=n;++k)
mid[i][j]=(mid[i][j]%MOD+((m[i][k]%MOD)*(m[k][j]%MOD))%MOD)%MOD;
for(int i=1;i<=n;++i)
for(int j=1;i<=n;++j)
m[i][j]=mid[i][j];
kk>>=1;
}
}
int main()
{
cin>>n>>k;
long long ll=n;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
scanf("%lld",&m[i][j]);
pow(k);
for(int i=1;i<=ll;++i)
{
for(int j=1;j<=ll;++j)
{
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}