#include <bits/stdc++.h>
const int maxn = 100005;
struct node {
  long long y1, y2;
  friend bool operator<(node n1, node n2) {
    if (n1.y1 == n2.y1) return n1.y2 < n2.y2;
    return n1.y1 < n2.y1;
  }
} a[maxn];
long long k[maxn], b[maxn];
void print(int n) {
  for (int i = 0; i < n; i++) printf("%I64d %I64d\n", a[i].y1, a[i].y2);
}
int main() {
  int n, x1, x2;
  scanf("%d%d%d", &n, &x1, &x2);
  for (int i = 0; i < n; i++) {
    scanf("%I64d%I64d", &k[i], &b[i]);
    a[i].y1 = x1 * k[i] + b[i];
    a[i].y2 = x2 * k[i] + b[i];
  }
  std ::sort(a, a + n);
  int flag = 0;
  for (int i = 1; i < n; i++)
    if (a[i].y2 < a[i - 1].y2) {
      flag = 1;
      break;
    }
  printf(flag ? "YES" : "NO");
  return 0;
}
