#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();
}
