#include <bits/stdc++.h>
using namespace std;
long long fn(long long x, long long rn[]) {
  if (x == rn[x])
    return x;
  else
    return rn[x] = fn(rn[x], rn);
}
bool un(long long x, long long y, long long rn[], long long sz[]) {
  x = fn(x, rn);
  y = fn(y, rn);
  if (x == y) return false;
  if (sz[x] < sz[y]) swap(x, y);
  sz[x] += sz[y];
  rn[y] = x;
  return true;
}
bool compare(const pair<long long, long long>& a,
             const pair<long long, long long>& b) {
  return a.second < b.second;
}
pair<int, int> mostFrequent(long long arr[], long long n) {
  unordered_map<long long, long long> hash;
  for (long long i = 0; i < n; i++) hash[arr[i]]++;
  long long max_count = 0, res = -1;
  for (auto i : hash) {
    if (max_count < i.second) {
      res = i.first;
      max_count = i.second;
    }
  }
  pair<long long, long long> temp;
  temp.first = res;
  temp.second = max_count;
  return temp;
}
long long div(long long n) {
  if (n % 2 == 0) return 2;
  for (long long i = 3; i * i <= n; i += 2) {
    if (n % i == 0) return i;
  }
  return n;
}
long long gcd(long long a, long long b) {
  if (!b) return a;
  return gcd(b, a % b);
}
long long lcm(long long a, long long b) { return (a * b) / gcd(a, b); }
long long msum(long long a[], long long size) {
  long long max_so_far = a[0];
  long long curr_max = a[0];
  for (long long i = 0; i < size; i++) {
    curr_max = max(a[i], curr_max + a[i]);
    max_so_far = max(max_so_far, curr_max);
  }
  return max_so_far;
}
long long m = 1000000007;
long long power(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = power(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
bool cst(const pair<long long, long long>& a,
         const pair<long long, long long>& b) {
  return (a.first) > (b.first);
}
bool cst1(const pair<long long, long long>& a,
          const pair<long long, long long>& b) {
  return (a.second) > (b.second);
}
long long divn(long long n) {
  long long cnt = 0;
  for (int i = 1; i <= sqrt(n); i++) {
    if (n % i == 0) {
      if (n / i == i)
        cnt++;
      else
        cnt = cnt + 2;
    }
  }
  return cnt;
}
int lol(int n) {
  int res = 0;
  for (int i = n; i >= 1; i--) {
    if ((i & (i - 1)) == 0) {
      res = i;
      break;
    }
  }
  long long cnt = 0;
  long long temp = res;
  while (res != 0) {
    res = res / 2;
    cnt++;
  }
  return (cnt);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  long long x1, x2;
  cin >> x1 >> x2;
  vector<pair<long long, long long>> vec;
  for (long long i = 0; i <= n - 1; i++) {
    long long x, y;
    cin >> x >> y;
    vec.push_back({x * x1 + y, x * x2 + y});
  }
  sort(vec.begin(), vec.end());
  long long flag = 0;
  for (long long i = 1; i <= n - 1; i++) {
    if (vec[i].second < vec[i - 1].second) {
      cout << "YES";
      flag = 1;
      break;
    }
  }
  if (flag == 0) {
    cout << "NO";
  }
}
