#include <bits/stdc++.h>
struct egyenes {
  long int m;
  long int b;
  long long int y1;
  long long int y2;
};
bool compareegyenes(egyenes node1, egyenes node2) {
  if (node1.y1 < node2.y1) return true;
  if (node1.y1 == node2.y1) return node1.y2 < node2.y2;
  return false;
}
using namespace std;
int main() {
  long int n;
  cin >> n;
  long long int x1, x2;
  cin >> x1 >> x2;
  vector<egyenes> ossz;
  for (int i = 1; i <= n; i++) {
    egyenes e;
    cin >> e.m >> e.b;
    e.y1 = e.m * x1 + e.b;
    e.y2 = e.m * x2 + e.b;
    ossz.push_back(e);
  }
  sort(ossz.begin(), ossz.end(), compareegyenes);
  int van;
  van = 0;
  for (int i = 0; i < n - 1; i++) {
    if (ossz[i].y1 < ossz[i + 1].y1 && ossz[i].y2 > ossz[i + 1].y2) {
      van = 1;
    }
  }
  if (van == 1) cout << "YES";
  if (van == 0) cout << "NO";
  return 0;
}
