program complete; var arr:array[1..100,1..100] of integer; i,t,r,n,s,c,mely:integer; igaz:boolean; Begin readln(n); for i:=1 to n do begin readln(s,c); for t:=1 to s do begin read(arr[1,t]); end; if s=1 then begin for r:=1 to c-1 do write(arr[1,1],' '); writeln(arr[1,1]); end else begin mely:=1;igaz:=true; while igaz do begin igaz:=false; for r:=1 to s-mely do begin arr[mely+1,r]:=arr[mely,r+1]-arr[mely,r]; if arr[mely+1,r]<>arr[mely+1,1] then igaz:=true; end; inc(mely); end; for r:=1 to c do arr[mely,r+s-mely+1]:=arr[mely,s-mely+1]; while mely>1 do begin dec(mely); for r:=1 to c do begin arr[mely,r+s-mely+1]:=arr[mely,r+s-mely]+arr[mely+1,r+s-mely]; end; end; for r:=1 to c-1 do begin write(arr[1,r+s],' '); end; writeln(arr[1,c+s]); end; end; end.