var
 Zad : Word;
 iZad : Word;
 TokId, TokTo, TokMove : array [1..250000] of Integer;
 iPole : Word;
 NumL,NumA : Word;
 DoRead:Boolean;
 PocTok : Word;
 CharPos : Word;
 TokIn, TokPos : word;
 ActId : Word;
 MoveBy,MoveTo,MoveFrom : Word;
 NewTo : Word;
 
begin
 Readln(Zad);
 for iZad := 1 to Zad do begin
  for iPole := 1 to 250000 do begin
   TokTo[iPole]:=0;
   TokId[iPole]:=0;
   TokMove[iPole]:=0;
  end; 
  ActId := 0;
  DoRead := true;
  CharPos := 0;
  TokIn := 0;
  Writeln('Zadani ',iZad,':');
  while DoRead do begin
   Read(NumL); Readln(NumA);
   if NumL>0 then begin
    Inc(ActId);
    Inc( CharPos, NumL );

    if TokIn=0 then begin
     Writeln('0');
    end else begin
     Writeln(ActId-TokId[1]);
     MoveBy := 0;
     for TokPos := 1 to TokIn do begin
      if TokTo[TokPos]<=CharPos then begin
       TokMove[TokPos] := -1;
       Inc(MoveBy);
      end else begin
       if MoveBy>0 then begin
        MoveTo := TokPos - MoveBy;
        TokTo[MoveTo] := TokTo[TokPos];
        TokId[MoveTo] := TokId[TokPos];
       end;
      end; 
     end;
     TokIn := TokIn - MoveBy;
    end; (* TokIn>0 *)
    
    if NumA>0 then begin 
     NewTo := CharPos + NumA;
     if (TokIn=0) or (TokTo[TokIn]<NewTo) then begin
      Inc(TokIn);
      TokTo[TokIn] := NewTo;
      TokId[TokIn] := ActId;
     end; 
    end;

   end else  (* NumL=0 *)
    DoRead := false;
  end; (* DoRead *)
  Writeln;
  
 end;  (* for iZad *)
end.