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] C=[[A[j][i]for j in L]for i in L] M-=1 while M: if M&1:B=[[max(B[i][k]+C[j][k]for k in L)for j in L]for i in L] A=[[max(A[i][k]+C[j][k]for k in L)for j in L]for i in L];C=[[A[j][i]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])