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.
