#include<bits/stdc++.h>
#define endl '\n'
using namespace std;
constexpr int maxn=110,p=1e9+7;
long long n,k;
long long a[maxn][maxn],c[maxn][maxn],ans[maxn][maxn];
void multi_matrix(long long a[][maxn],long long b[][maxn])
{
for (long long i=1;i<=n;i++)
{
for (long long j=1;j<=n;j++)
{
for (long long k=1;k<=n;k++) c[i][j]=(c[i][j]+(a[i][k]*b[k][j])%p)%p;
}
}
memcpy(a,c,sizeof(c));memset(c,0,sizeof(c));
}
void ksm()
{
while (k)
{
if (k&1) multi_matrix(ans,a);
multi_matrix(a,a);
k>>=1;
}
}
int main()
{
ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin >> n >> k;
for (long long i=1;i<=n;i++)
{
for (long long j=1;j<=n;j++) cin >> a[i][j],a[i][j]%=p;
ans[i][i]=1;
}
ksm();
for (long long i=1;i<=n;i++)
{
for (long long j=1;j<=n;j++) cout << ans[i][j] << " ";
cout << endl;
}
return 0;
}