#include<bits/stdc++.h>
#define int long long
#define m 1000000007
using namespace std;
int k,n;
struct martix{
int a[110][110];
martix()
{
memset(a,0,sizeof(a));
}
martix operator*(const martix &b) const
{
martix res;
for(int k=1;k<=n;++k)
{
for(int i=1;i<=n;++i)
{
for(int j=1;j<=n;++j)
{
res.a[i][j]=(res.a[i][j]+(a[i][k]%m)*(b.a[k][j]%m))%m;
}
}
}
return res;
}
};
martix ans,base;
void qkp(int b)
{
while(b)
{
if(b%2==1)ans=ans*base;
base=base*base;
b/=2;
}
}
signed main()
{
cin>>n>>k;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cin>>ans.a[i][j];
}
}
for(int i=1;i<=n;i++)base.a[i][i]=1;
qkp(k);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
cout<<ans.a[i][j]%m<<" ";
}
cout<<endl;
}
return 0;
}