#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define maxn 25
#define mod 10
ll n, k;
struct matran_con
{
ll a[maxn][maxn];
void print()
{
for (ll i = 0; i < n; i++)
{
for (ll j = 0; j < n; j++)
cout << a[i][j] << " ";
cout << '\n';
}
}
};
struct matran_me
{
matran_con a[2][2];
void print()
{
for (ll i = 0; i < 2; i++)
{
for (ll j = 0; j < 2; j++)
a[i][j].print();
cout << '\n';
}
}
};
struct matran_1
{
matran_con a[1][2];
void print()
{
for (ll i = 0; i < 1; i++)
{
for (ll j = 0; j < 2; j++)
a[i][j].print();
cout << '\n';
}
}
};
matran_con zero, one, A;
matran_1 init,ress;
matran_me M, zero_me, one_me;
matran_con sum(matran_con A, matran_con B)
{
matran_con C;
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
C.a[i][j] = (A.a[i][j] % mod + B.a[i][j] % mod) % mod;
return C;
}
matran_con f(matran_con A, matran_con B)
{
matran_con C;
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
C.a[i][j] = 0;
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
for (ll k = 0; k < n; k++)
C.a[i][j] = (C.a[i][j] + (A.a[i][k] % mod * B.a[k][j] % mod) % mod) % mod;
return C;
}
matran_me prod(matran_me A, matran_me B)
{
matran_me C;
for (ll i = 0; i < 2; i++)
for (ll j = 0; j < 2; j++)
C.a[i][j] = zero;
for (ll i = 0; i < 2; i++)
for (ll j = 0; j < 2; j++)
for (ll k = 0; k < 2; k++)
C.a[i][j] = sum(C.a[i][j], f(A.a[i][k], B.a[k][j]));
return C;
};
matran_me po(matran_me A, ll n)
{
matran_me res = A, ans = one_me;
while (n)
{
if (n % 2)
ans = prod(ans, res);
res = prod(res, res);
n /= 2;
}
return ans;
}
matran_1 prod1(matran_1 A, matran_me B)
{
matran_1 C;
for (ll i = 0; i < 1; i++)
for (ll j = 0; j < 2; j++)
C.a[i][j] = zero;
for (ll i = 0; i < 1; i++)
for (ll j = 0; j < 2; j++)
for (ll k = 0; k < 2; k++)
C.a[i][j] = sum(C.a[i][j], f(A.a[i][k], B.a[k][j]));
return C;
}
int main()
{
cin >> n >> k;
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
cin >> A.a[i][j];
// A.print();
for (ll i = 0; i < n; i++)
for (ll j = 0; j < n; j++)
{
zero.a[i][j] = 0;
if (i == j)
one.a[i][j] = 1;
else
one.a[i][j] = 0;
}
// one.print();
// zero.print();
init.a[0][0] = A;
init.a[0][1] = one;
// init.print();
one_me.a[0][0] = one;
one_me.a[0][1] = zero;
one_me.a[1][0] = zero;
one_me.a[1][1] = one;
// cout<<"one_me"<<'\n';
// po(one_me,3).print();
M.a[0][0] = M.a[1][0] = A;
M.a[0][1] = zero;
M.a[1][1] = one;
ress = prod1(init,po(M,k-1));
ress.a[0][0].print();
}