#include <bits/stdc++.h>
#define int long long
#define MOD (int)(1e9 + 7)
using namespace std;
int n;
struct martix{
int m[105][105];
martix(){memset(m, 0, sizeof(m));}
friend martix operator*(martix a, martix b){
martix c;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
for(int k = 1; k <= n; k++)
c.m[i][j] = (c.m[i][j] + ((a.m[i][k] % MOD) * (b.m[k][j] % MOD)) % MOD) % MOD;
return c;
}
};
martix QuickPow(martix a, int k){
if(k == 0){
martix c;
for(int i = 1; i <= n; i++)
c.m[i][i] = 1;
return c;
}
if(k == 1) return a;
auto res = QuickPow(a, k / 2);
if(k % 2 == 0) return res * res;
else return res * res * a;
}
signed main(){
int n, k;
martix ans;
scanf("%lld %lld", &n, &k);
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
scanf("%lld", &ans.m[i][j]);
ans = QuickPow(ans, k);
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++)
printf("%lld ", ans.m[i][j]);
putchar('\n');
}
return 0;
}