#include <bits/stdc++.h>
using namespace std;
int n, p, q;
vector<int> A, B;
long double get(long double y1) {
  long double y2 = 1;
  for (int i = 0; i < A.size(); i++) {
    y2 = std::min(y2, (1.0 - y1 * A[i]) / B[i]);
  }
  return p * y1 + q * y2;
}
int main() {
  cin >> n >> p >> q;
  long double min = 0, max = 1;
  A.resize(n);
  B.resize(n);
  for (int i = 0; i < n; i++) {
    cin >> A[i] >> B[i];
    max = std::min(max, (long double)1.0 / A[i]);
  }
  long double delta = 1e-12;
  while (max > delta + min) {
    long double l = (2 * min + max) / 3.0;
    long double r = (min + 2 * max) / 3.0;
    if (get(l) > get(r)) {
      max = r;
    } else {
      min = l;
    }
  }
  printf("%.10Lf\n", get(min));
}
