#include <bits/stdc++.h>
using namespace std;
pair<pair<long long int, long long int>, pair<int, int> > ranges[100001];
int n, x1, x2;
int main() {
  scanf("%d", &n);
  scanf("%d %d", &x1, &x2);
  for (int I = 0; I < n; I++) {
    int k, b;
    scanf("%d %d", &k, &b);
    long long int miny =
        ((long long int)k * (long long int)x1) + (long long int)b;
    long long int maxy =
        ((long long int)k * (long long int)x2) + (long long int)b;
    pair<long long int, long long int> p2 =
        make_pair(min(miny, maxy), max(miny, maxy));
    pair<int, int> p1 = make_pair(k, b);
    pair<pair<long long int, long long int>, pair<int, int> > p =
        make_pair(p2, p1);
    ranges[I] = p;
  }
  sort(ranges, ranges + n);
  pair<pair<long long int, long long int>, pair<int, int> > last = ranges[0];
  for (int I = 1; I < n; I++) {
    pair<pair<long long int, long long int>, pair<int, int> > rng = ranges[I];
    if (rng.first.second < last.first.second &&
        rng.first.first > last.first.first) {
      printf("YES");
      return 0;
    }
    if (rng.first.first == last.first.first &&
        rng.first.second == last.first.second) {
      printf("YES");
      return 0;
    }
    if ((last.second.first < 0 && rng.second.first > 0) ||
        (last.second.first > 0 && rng.second.first < 0)) {
      if (rng.first.first < last.first.second) {
        printf("YES");
        return 0;
      }
    }
    last = rng;
  }
  printf("NO");
}
