#include <bits/stdc++.h>
double a[100001], b[100001];
int main() {
  int i, j, k;
  int n;
  double p, q;
  scanf("%d%lf%lf", &n, &p, &q);
  for (i = 0; i < n; i++) {
    scanf("%lf%lf", &a[i], &b[i]);
    a[i] /= p;
    b[i] /= q;
  }
  double min = 0, max = 1e18;
  int tt = 500;
  while (tt--) {
    double mid = (min + max) / 2;
    bool okp = false, okq = false, okr = false, okpq = false;
    for (i = 0; i < n; i++) {
      if (a[i] > mid && b[i] > mid) okr = true;
      if (a[i] > mid) okp = true;
      if (b[i] > mid) okq = true;
    }
    if (!okr && okp && okq) {
      double bp = 1, bq = 1;
      for (i = 0; i < n; i++) {
        if (a[i] > mid) {
          double t = 1 + (a[i] - mid) / (mid - b[i]);
          if (bp < t) bp = t;
        }
        if (b[i] > mid) {
          double t = 1 + (b[i] - mid) / (mid - a[i]);
          if (bq < t) bq = t;
        }
      }
      if ((bq - 1) * (bp - 1) >= 1 * 1) okpq = 1;
    }
    if (okr || okpq) {
      min = mid;
    } else {
      max = mid;
    }
  }
  printf("%.18f\n", 1.0 / min);
}
