#include <bits/stdc++.h>
using namespace std;
const int P = 1e9 + 7;
struct matrix {
int n, m;
int a[110][110];
matrix(int x) {
n = m = x;
for (register int i = 1; i <= n; ++i)
a[i][i] = 1;
}
matrix() {
}
};
void add(int &x, long long y) {
x = 1ll * (x + y) % P;
}
matrix operator * (const matrix &a, const matrix &b) {
matrix c;
c.n = a.n, c.m = b.m;
for (register int k = 1; k <= a.m; ++k)
for (register int i = 1; i <= c.n; ++i)
for (register int j = 1; j <= c.m; ++j)
add(c.a[i][j], 1ll * a.a[i][k] * b.a[k][j] % P);
return c;
}
void print(matrix c) {
for (register int i = 1; i <= c.n; ++i) {
for (register int j = 1; j <= c.m; ++j)
cout << c.a[i][j] << ' ';
puts("");
}
}
int m;
matrix a;
int main() {
cin >> a.n >> m;
for (register int i = 1; i <= a.n; ++i)
for (register int j = 1; j <= a.n; ++j)
cin >> a.a[i][j];
matrix c(a.n);
a.m = a.n;
for (; m; m >>= 1) {
if (m & 1) c = c * a;
a = a * a;
}
print(c);
}