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