var
a,d:array [1..200000] of integer;
n,t,i,j,min,k,l:integer;
begin
readln(t);
for j:=1 to t do
begin
readln(n);
for i:=1 to n do
read(a[i]);
min:=a[1];
d[1]:=0;;
k:=1;
for i:=1 to n do
begin
if a[i]<min then min:=a[i];
if min>=d[k]+1 then begin d[k]:=d[k]+1; end
else begin k:=k+1; d[k]:=0;; min:=a[i]; d[k]:=d[k]+1; end;
end;
writeln(k);
for i:=1 to k do write(d[i],' ');
writeln;
end;
end.