uses
  testlib, sysutils;

var
  n : integer;
  pa, ja : string;
  x, y : array[1..300] of integer;
  i, j, k : integer;
  a, b, c : integer;

begin 
  n := inf.readInteger();
  pa := ouf.readWord(BLANKS, BLANKS);
  ja := ans.readWord(BLANKS, BLANKS);
  if (ja = 'YES') then begin
    if (pa = 'NO') then begin
      quit(_wa, 'Participant has not found the solution, but jury has.');
    end;
  end else begin
    if (pa = 'NO') then begin
      quit(_ok, 'Answer is NO.');
    end;
  end;
  for i := 1 to n do begin
    x[i] := ouf.readInteger();
    y[i] := ouf.readInteger();
    if (abs(x[i]) > 10000) then begin
      quit(_wa, format('abs(x[%d]) is more than 10000 : %d', [i, x[i]]));
    end;
    if (abs(y[i]) > 10000) then begin
      quit(_wa, format('abs(y[%d]) is more than 10000 : %d', [i, y[i]]));
    end;
  end;
  for i := 1 to n do begin
    for j := i + 1 to n do begin
      if (x[i] = x[j]) and (y[i] = y[j]) then begin
        quit(_wa, format('Points %d and %d are same', [i, j]));
      end;
      a := y[i] - y[j];
      b := x[j] - x[i];
      c := -a * x[i] - b * y[i];
      for k := j + 1 to n do begin
        if (a * x[k] + b * y[k] + c = 0) then begin
          quit(_wa, format('Points %d, %d and %d lie on the same line.', [i, j, k]));
        end;
      end;
    end;
  end;
  if (ja = 'YES') then begin
    quit(_ok, format('n = %d, answer is YES', [n]));
  end else begin
    quit(_fail, 'Participant has found the solution, but jury has not.');
  end;
end.