#include <iostream>
using namespace std;
 
int main() {
	int m,n;
	cin >> m >> n;
	int A[m][m]; //массив для хранения исходной матрицы
	int B[m][m]; //массив для хранения степеней исходной матрицы
	int C[m][m]; //массив для хранения произведений A на B при возведении в степень
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<m;j++)
		{
			cin >> A[i][j];
			B[i][j]=A[i][j];
		}
	}
	int sum=0;
	int result=0;
	if(n>0)
	{
		for(int i=0;i<m;i++)
		{
			result+=B[i][i]; //нахождение следа исходной матрицы 
		}
		cout << result << " ";
	}
	for(int q=0;q<n-1;q++)
	{
		for(int i=0;i<m;i++) //перемножение матриц
        {
           for(int z=0;z<m;z++)
           {
           		for(int j=0;j<m;j++)
				{
					sum+=A[i][j]*B[j][z];
				}
				C[i][z]=sum; 
				sum=0;
			}
		}
		for(int i=0;i<m;i++) //переприсваивание элементов матрицы
		{
			for(int j=0;j<m;j++)
			{
				B[i][j]=C[i][j];
			}
		}
		result=0;
		for(int i=0;i<m;i++)
		{
			result+=B[i][i]; //нахождение следа полученной матрицы
		}
		cout << result << " ";
	}
	return 0;
}