program ed;
const nmax=10;
type tarr=array[1..nmax,1..nmax] of longint;
var a,rez:tarr;
i,j,n,m,k:integer;
function track(const a:tarr;
const n:integer):longint;
var i:integer;
res:longint;
Begin res:=0;
for i:=1 to n do res:=res+a[i,i];
track:=res;
end;
Begin readln(n,m);
randomize;
for i:=1 to n do for j:=1 to m do a[i,j]:=random(10);
for i:=1 to n do begin for j:=1 to m do write(a[i,j]:3);
writeln;
end;
while m<>0 do begin writeln(track(a,n));
fillchar(rez,sizeof(rez),0);
for i:=1 to n do for j:=1 to n do for k:=1 to n do rez[i,j]:=rez[i,j]+a[i,k]*a[k,j];
a:=rez;
dec(m);
end;
readln;
end.