{
TASK: KROKODILAIJ
LANG: PASCAL
}
program krokodilai;

  const PRF = 'KROKO.DAT';
        RZF = 'KROKO.REZ';
        MAX = 1000; { krokodilų skaičius }
  type Tvmas = array [1..MAX] of longint;
       Tlmas = array [1..MAX] of boolean;

  var K: integer;  { krokodilų skaičius }
      juos: Tvmas; { juostelių skaičius ant krokodilų }
      agr: Tlmas;  { krokodilų agresyvumas }

  procedure ieskoti (var riba, klaidos: longint);
    var i, j, nr: longint;
        kl: Tvmas;
  begin
    for i := 1 to K do
      kl[i] := 0;
    for i := 1 to K do
        if agr[i]
           then for j := i+1 to K do
                  begin
                    if juos[j] <> juos[i]
                       then kl[j] := kl[j] + 1
                  end
           else begin
                  for j := i downto 1 do
                     kl[j] := kl[j] + 1;
                  for j := i+1 to K do
                    if juos[j] = juos[i]
                       then kl[j] := kl[j] + 1
                end;

    { ieškome mažiausio klaidų skaičiaus }
    nr := 1; klaidos := kl[nr];
    for i := 2 to K do
      if klaidos > kl[i]
         then begin
                nr := i;
                klaidos := kl[nr];
              end;
   { ieškome ribos }
   if nr = 1
      then riba := 0
      else riba := juos[nr-1] + 1;
  end; { ieskoti }

  procedure rikiuoti (k1, k2: longint);
    var i, j, y, a: longint;
        b: boolean;
  begin
    i := k1; j := k2;
    y := juos[(i+j) div 2];
    repeat
      while y > juos[i] do i := i + 1;
      while y < juos[j] do j := j - 1;
      if i <= j
         then begin
                a := juos[i]; juos[i] := juos[j]; juos[j] := a;
                b := agr[i];  agr[i] := agr[j]; agr[j] := b;
                i := i + 1; j := j - 1;
              end;
   until i > j;
   if k1 < j then rikiuoti (k1, j);
   if i < k2 then rikiuoti (i, k2);
  end; { rikiuoti }


  procedure skaityti (var K: integer; var juos: Tvmas; var agr: Tlmas);
    var f: text;
        i, ind: integer;
  begin
    assign (f, PRF);
    reset (f);
    readln (f, K);
    for i := 1 to K do
      begin
        readln (f, juos[i], ind);
        agr[i] := ind = 1;
      end;
    close (f);
  end; { skaityti }

  procedure rasyti (riba, klaidos: longint);
    var f: text;
  begin
    assign (f, RZF);
    rewrite (f);
    writeln (f, riba, ' ', klaidos);
    close (f);
  end; { rašyti }

   var riba, klaidos: longint;
begin
  skaityti (K, juos, agr);
  rikiuoti (1, K);
  ieskoti (riba, klaidos);
  rasyti (riba, klaidos);
end.
