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;
 TokIn, TokIn2 : word;
begin
 Readln(Zad);
 for iZad := 1 to Zad do begin
  for iPole := 1 to 250000 do ZnTo[iPole]:=0;
  DoRead := true;
  CharPos := 0;
  TokIn := 0;
  Writeln('Zadani ',iZad,':');
  while DoRead do begin
   Read(NumL); Readln(NumA);
   if NumL>0 then begin

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

    Writeln(PocTok);

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