#include <iostream>
#include <cstdio>
using namespace std;
#define inl long long
const int SP=1e2+5;
const int mod=1e9+7;
inl n,k;
inl a[SP][SP],ans[SP][SP]={0};
inline inl read (void) {
inl x=0,f=1;
char ch=getchar();
while (ch=='-')
f=f*(-1),ch=getchar();
while (ch>=48&&ch<=57)
x=(x<<3)+(x<<1)+(ch^48),ch=getchar();
return x*f;
}
signed main (void) {
n=read(),k=read();
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
a[i][j]=read();
for (int i=1;i<=n;++i)
ans[i][i]=1;
while (k) {
if (k&1) {
inl c[105][105]={0};
for (int k=1;k<=n;++k)
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
c[i][j]=(c[i][j]+1ll*ans[i][k]*a[k][j]%mod)%mod;
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
ans[i][j]=c[i][j];
}
inl c[105][105]={0};
for (int k=1;k<=n;++k)
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
c[i][j]=(c[i][j]+1ll*a[i][k]*a[k][j]%mod)%mod;
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
a[i][j]=c[i][j];
k>>=1;
}
for (int i=1;i<=n;++i) {
for (int j=1;j<=n;++j)
printf("%lld ",ans[i][j]%mod);
printf("\n");
}
return 0;
}