R=range J=lambda:list(map(int,input().split())) N,M=J() L=R(N) T=J() A=[J()for t in T] B=[a[:]for a in A] M-=1 while M: if M&1:B=[[max(B[i][k]+A[k][j]for k in L)for j in L]for i in L] A=[[max(A[i][k]+A[k][j]for k in L)for j in L]for i in L];M>>=1 print(*[max(T[j]+B[j][i]for j in L)for i in L])