{
TASK:FOLDERS
LANG:PASCAL
}
type
folder=record
        n:string;
        p,t:integer;
       end;
var
 a:array[1..200] of folder;
 b:array[1..200] of boolean;
 s,x:string;
 br,m,r,i,pp,tt,tupapromenlivazatupiaval:integer;
 f:boolean;

procedure srch(j:integer);
var k:integer;
    ff:boolean;
begin
 k:=j;
 ff:=false;
 repeat
  if s=a[k].n then begin ff:=true; r:=k; end;
  inc(k);
 until (k>=i) or ff;
 if not ff then r:=i;
end;

begin
 for i:=1 to 200 do begin
  b[i]:=false;
  a[i].t:=-1;
 end;
 i:=1;
 m:=1;
 f:=true;
 repeat
  readln(s);
  x:=s[pos(' ',s)+1];
  val(x,pp,tupapromenlivazatupiaval);
  delete(s,pos(' ',s),2);
  x:=copy(s,pos(' ',s)+1,length(s)-pos(' ',s));
  val(x,tt,tupapromenlivazatupiaval);
  delete(s,pos(' ',s),length(s)-pos(' ',s)+1);
  srch(m);
  if (r=i) and f then
     begin
      a[i].n:=s;
      a[i].p:=pp;
      a[i].t:=tt;
      inc(i);
     end
  else begin
      if (tt>=a[r].t) and (a[r].t<>-1) then b[r]:=true;
      if pp<>0 then m:=r;
      f:=false;
  end;
 until eof;
 r:=i-1;
 br:=0;
 for i:=1 to r do
  if (a[i].p=0) and not b[i] then inc(br);
 writeln(br);
end.