program COMPLETE;
var i,j,t,arad,rad,sl,s,c: Integer;
    pole:array[1..100,1..101] of real;
    Vysl:array[1..100] of real;
    suma:real;
    
begin
  readln(t);
  for i:=1 to t do begin
    readln(s,c);
    for rad:=1 to s do read(pole[rad,s+1]);
    readln;
    for Rad:=1 to s do 
      for Sl:=1 to s do 
        pole[Rad,Sl]:=exp((s-Sl)*ln(Rad)); 
    for ARad:=1 to s-1 do
      for Rad:=ARad+1 to s do
        for sl:=s+1 downto 1 do 
          pole[rad,sl]:=pole[rad,sl]-pole[Rad,ARad]/pole[ARad,ARad]*pole[ARad,sl];
    for Sl:=s downto 1 do begin
      Vysl[sl]:=pole[sl,s+1];
      for j:=s downto Sl+1 do Vysl[sl]:=Vysl[sl]-pole[sl,j]*Vysl[j];
      Vysl[sl]:=Vysl[sl]/pole[sl,sl];
    end;
    for j:=s+1 to c+s do begin
      suma:=0;
      for sl:=1 to s do suma:=suma+vysl[sl]*exp((s-sl)*ln(j));
      write(round(suma),' ');        
    end;      
    writeln;
  end;
end.    
    