#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 110;
const int Mod = 1e9+7;
struct Matrix
{
int a[N][N], n, m;
friend Matrix operator * (const Matrix &n1, const Matrix &n2)
{
Matrix n3 = (Matrix){{{0}}, n1.n, n2.m};
for(int k = 1;k <= n2.n;++k)
for(int i = 1;i <= n1.n;++i)
for(int j = 1;j <= n2.m;++j)
n3.a[i][j] = (ll)(n1.a[i][k]) * n2.a[k][j] % Mod;
return n3;
}
};
inline Matrix fastpow(Matrix a, ll k)
{
Matrix ans = (Matrix){{{0}}, a.n, a.m};
for(int i = 1;i <= ans.n;++i)
{
for(int j = 1;j <= ans.m;++j)
{
ans.a[i][j] = 1;
if(k == 0 && i != j)
ans.a[i][j] = 0;
}
}
while(k)
{
if(k & 1)
ans = ans * a;
k >>= 1;
a = a * a;
}
return ans;
}
int main()
{
int n;
ll k;
cin >> n >> k;
Matrix a = (Matrix){{{0}}, n, n};
for(int i = 1;i <= n;++i)
for(int j = 1;j <= n;++j)
scanf("%d", &a.a[i][j]);
Matrix ans = fastpow(a, k);
for(int i = 1;i <= n;++i)
{
for(int j = 1;j <= n;++j)
cout << ans.a[i][j] << " ";
cout << "\n";
}
return 0;
}