#include <bits/stdc++.h>
using namespace std;
pair<int, int> v[100005];
long long D(pair<int, int> A, pair<int, int> B, pair<int, int> C) {
  return (long long)A.first * B.second + (long long)A.second * C.first +
         (long long)B.first * C.second -
         ((long long)B.second * C.first + (long long)A.first * C.second +
          (long long)A.second * B.first);
}
double Dd(pair<double, double> A, pair<double, double> B,
          pair<double, double> C) {
  return A.first * B.second + A.second * C.first + B.first * C.second -
         (B.second * C.first + A.first * C.second + A.second * B.first);
}
vector<pair<int, int>> convex_hull(int n, bool origin) {
  vector<pair<int, int>> L, U;
  if (origin) {
    L.emplace_back(0, 0);
    U.emplace_back(0, 0);
  }
  for (int i = 0; i < n; i++) {
    if (i && v[i] == v[i - 1]) continue;
    while (L.size() >= 2 && D(L[L.size() - 1], L[L.size() - 2], v[i]) > 0)
      L.pop_back();
    L.push_back(v[i]);
  }
  for (int i = 0; i < n; i++) {
    if (i && v[i] == v[i - 1]) continue;
    while (U.size() >= 2 && D(U[U.size() - 1], U[U.size() - 2], v[i]) < 0)
      U.pop_back();
    U.push_back(v[i]);
  }
  U.pop_back();
  reverse(U.begin(), U.end());
  L.insert(L.end(), U.begin(), U.end());
  L.pop_back();
  return L;
}
bool f(vector<pair<int, int>>& cv, int x, int y, double m) {
  int n = cv.size();
  for (int i = 0; i < n; i++) {
    int j = i + 1 == n ? 0 : i + 1;
    pair<double, double> p{cv[i].first * m, cv[i].second * m},
        q{cv[j].first * m, cv[j].second * m};
    if (Dd(p, q, make_pair(x, y)) < 0) return false;
  }
  return true;
}
int main() {
  int n, p, q;
  scanf("%d%d%d", &n, &p, &q);
  set<pair<int, int>> S;
  int maxA = 0, maxB = 0;
  for (int i = 0; i < n; i++) {
    scanf("%d%d", &v[i].first, &v[i].second);
    maxA = max(maxA, v[i].first);
    maxB = max(maxB, v[i].second);
  }
  v[n++] = {maxA, 0};
  v[n++] = {0, maxB};
  sort(v, v + n);
  vector<pair<int, int>> cv0 = convex_hull(n, true);
  vector<pair<int, int>> cv = convex_hull(n, false);
  double l = 0, r = 1e9;
  for (int i = 0; i < 100; i++) {
    double m = (l + r) / 2;
    bool in0 = f(cv0, p, q, m);
    bool in1 = f(cv, p, q, m);
    if (in1)
      r = m;
    else if (in0)
      r = m;
    else
      l = m;
  }
  printf("%.15lf\n", l);
  return 0;
}
