#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:66777216")
using namespace std;
const double eps = 1e-7;
const double pi = acos(-1.0);
const long long INF = (long long)2e9 + 1;
const long long LINF = (long long)8e18;
const long long inf = (long long)2e9 + 1;
const long long linf = (long long)8e18;
const long long MM = (long long)1e9 + 7;
int solve();
void gen();
int main() {
  solve();
  return 0;
}
const int dd = 1e5 + 7;
struct pt {
  long long x, y;
};
struct vt {
  long long x, y;
  vt(pt A, pt B) {
    x = B.x - A.x;
    y = B.y - A.y;
  }
  long long operator%(vt b) { return x * b.y - y * b.x; }
  long long dist() { return x * x + y * y; }
};
struct line {
  long long a, b, c;
  line(pt A, pt B) {
    a = B.y - A.y;
    b = A.x - B.x;
    c = -(a * A.x + b * A.y);
  }
};
double inter(line A, line B) {
  double x = -(A.c * B.b - B.c * A.b) / (A.a * B.b - B.a * A.b);
  return x;
}
int solve() {
  int n, p, q;
  cin >> n >> p >> q;
  double ans = 1e20;
  pt M;
  M.x = p, M.y = q;
  vector<pt> P(n + 2);
  long long ma = -1, mb = -1;
  for (int i = 0; i < (int)n; i++) {
    cin >> P[i].x >> P[i].y;
    ma = max(P[i].x, ma);
    mb = max(P[i].y, mb);
    ans = min(ans, max(p * 1.0 / P[i].x, q * 1.0 / P[i].y));
  }
  P[n].x = ma, P[n].y = 0;
  P[n + 1].x = 0, P[n + 1].y = mb;
  sort(P.begin(), P.end(),
       [](pt A, pt B) { return A.x == B.x ? A.y < B.y : A.x < B.x; });
  pt O = P[0];
  sort(P.begin() + 1, P.end(), [O](pt A, pt B) {
    if (vt(O, A) % vt(O, B) == 0) return vt(O, A).dist() < vt(O, B).dist();
    return vt(O, A) % vt(O, B) > 0;
  });
  vector<pt> T;
  for (auto J : P) {
    while (T.size() >= 2 &&
           (vt(T[T.size() - 2], T.back()) % vt(T.back(), J) <= 0)) {
      T.pop_back();
    }
    T.push_back(J);
  }
  O.x = 0, O.y = 0;
  T.push_back(T[0]);
  for (int i = 0; i + 1 < T.size(); i++) {
    if ((vt(O, T[i]) % vt(T[i], M)) > 0 && (vt(O, M) % vt(M, T[i + 1]) > 0)) {
      long long a = T[i + 1].y - T[i].y;
      long long b = T[i].x - T[i + 1].x;
      long long c = (a * T[i].x + b * T[i].y);
      ans = min(ans, (double)(a * p + b * q) / c);
    }
  }
  printf("%.10f", ans);
  return 0;
}
