var
 Zad : Word;
 iZad : Word;
 ZnTo:array [1..250000] of Integer;
 iPole, MaxPole, PoleSize : Word;
 NumL,NumA : Word;
 DoRead:Boolean;
 OdkazLen : Word;
 PocTok : Word;
 CharPos : Word;
begin
 Readln(Zad);
 for iZad := 1 to Zad do begin
  for iPole := 1 to 250000 do ZnTo[iPole]:=0;
  DoRead := true;
  CharPos := 0;
  Writeln('Zadani ',iZad,':');
  while DoRead do begin
   Read(NumL); Readln(NumA);
   if NumL>0 then begin

    PocTok := 0;
    Inc( CharPos, NumL );
    for iPole := 1 to 250000 do begin
     if ZnTo[iPole]>0 then begin
      Inc(PocTok);
      if ZnTo[iPole]<=CharPos then ZnTo[iPole] := 0;
     end;
    end;
    
    if NumA>0 then begin
     iPole := 1;
     while (iPole<250000) and (ZnTo[iPole]>0) do begin
      Inc(iPole);
     end;
     ZnTo[iPole] := CharPos + NumA;
    end;

    Writeln(PocTok);

   end else
    DoRead := false;
  end; (* DoRead *)
  MaxPole :=PoleSize;
  Writeln;
  
 end;  (* for iZad *)
{ Writeln('Hotovo!');}
end.