#include<iostream> using namespace std; int main() { int n, k; while (scanf("%d %d", &n, &k) != EOF) { int p[n][n], tmp[n][n], ans[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> p[i][j]; tmp[i][j] = p[i][j]; } } if (k == 1) { for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << p[i][j] << " "; } cout << endl; } } else { for (int q = 1; q < k; q++) { // 进行k-1次矩阵乘法 for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int sum = 0; for (int t = 0; t < n; t++) { sum += tmp[i][t] * p[t][j]; } ans[i][j] = sum; } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { tmp[i][j] = ans[i][j]; } } } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cout << ans[i][j] << " "; } cout << endl; } } } return 0; }