#include <bits/stdc++.h>
using namespace std;
const int inf = 0x3f3f3f3f, mod = 1e9 + 7;
const int maxn = 2e5 + 100, mxn = 5e5 + 100;
const long double PI = acos(-1.0);
long long gcd(long long a, long long b) { return (a ? gcd(b % a, a) : b); }
void exgcd(long long a, long long b, long long& d, long long& x, long long& y) {
  if (!b) {
    d = a;
    x = 1;
    y = 0;
  } else {
    exgcd(b, a % b, d, y, x);
    y -= x * (a / b);
  }
}
long long power(long long a, long long n) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
    }
    n >>= 1;
    a *= a;
  }
  return p;
}
long long power(long long a, long long n, long long mod) {
  long long p = 1;
  while (n > 0) {
    if (n % 2) {
      p = p * a;
      p %= mod;
    }
    n >>= 1;
    a *= a;
    a %= mod;
  }
  return p % mod;
}
int n, m;
double a[maxn], b[maxn], p, q;
double f(double x) {
  double minn = 100000.0;
  for (int i = 1; i <= n; i++) minn = min(minn, (1 - b[i] * x) / a[i]);
  return p * minn + q * x;
}
int main() {
  while (cin >> n >> p >> q) {
    double maxx = 0;
    for (int i = 1; i <= n; i++) {
      cin >> a[i] >> b[i];
      maxx = max(b[i], maxx);
    }
    double l = 0, r = 1 / maxx;
    for (int i = 1; i <= 400; i++) {
      double mid = (l + r) / 2.0;
      double midmid = (mid + r) / 2.0;
      if (f(mid) >= f(midmid))
        r = midmid;
      else
        l = mid;
    }
    printf("%.10f\n", f((l + r) / 2.0));
  }
  return 0;
}
