uses
  SysUtils, TestLib;

function Numbers(n: longint): string;
begin
  result := inttostr(n);
  n := n mod 100;
  if (n div 10 <> 1) and (n mod 10 = 1) then
    result := result + ' верное число.'
  else if (n div 10 <> 1) and (n mod 10 in [2..4]) then
    result := result + ' верных числа.'
  else
    result := result + ' верных чисел.';
end;

procedure Normalize(var s : string);
var
  neg : boolean;
  i : integer;

begin
  if s[1] = '-' then begin
    neg := true;
    delete (s, 1, 1);
  end else
    neg := false;

  for i := 1 to length (s) do
    if not (s[i] in ['0'..'9']) then
      if neg then
        Quit (_PE, format('Недозволенный %d-й символ в "-', [i + 1]) + s + '".')
      else
        Quit (_PE, format('Недозволенный %d-й символ в "', [i]) + s + '".');

  while (length (s) > 1) and (s[1] = '0') do
    delete (s, 1, 1);

  if neg then
    s := '-' + s;
end;

var
  i,n: longint;
  a, b : string;

begin
  n := 0;
  while not ans.seekeof do begin
    inc(n);
    a := ouf.ReadWord (blanks, blanks);
    b := ans.ReadWord (blanks, blanks);
    Normalize(a);
    Normalize(b);
    if a <> b then
      Quit (_WA, format('%d-е число: ожидалось "', [n]) + b + '", получено "' + a + '".');
  end;
  if not ouf.seekeof then
    Quit(_PE, 'Лишняя информация в файле.');
  Quit (_OK, Numbers(n));
end.
