#include <bits/stdc++.h>
using namespace std;
long long cross(pair<int, int> a, pair<int, int> b) {
  return 1LL * a.first * b.second - 1LL * a.second * b.first;
}
long long ccw(pair<int, int> a, pair<int, int> b, pair<int, int> c) {
  pair<int, int> p = pair<int, int>(b.first - a.first, b.second - a.second);
  pair<int, int> q = pair<int, int>(c.first - a.first, c.second - a.second);
  return cross(p, q);
}
double cross(pair<double, double> a, pair<double, double> b) {
  return a.first * b.second - a.second * b.first;
}
double ccw(pair<double, double> a, pair<double, double> b,
           pair<double, double> c) {
  pair<double, double> p =
      pair<double, double>(b.first - a.first, b.second - a.second);
  pair<double, double> q =
      pair<double, double>(c.first - a.first, c.second - a.second);
  return cross(p, q);
}
int N, p, q;
vector<pair<int, int> > P;
vector<pair<int, int> > cvh;
pair<int, int> st = pair<int, int>(0, 0);
bool cmp(pair<int, int> a, pair<int, int> b) {
  if (ccw(st, a, b))
    return ccw(st, a, b) > 0;
  else
    return abs(a.first - st.first) + abs(a.second - st.second) <
           abs(b.first - st.first) + abs(b.second - st.second);
}
int main() {
  scanf("%d %d %d", &N, &p, &q);
  P.resize(N);
  for (int i = 0; i < N; i++) {
    scanf("%d %d", &P[i].first, &P[i].second);
  }
  sort(P.begin(), P.end(), cmp);
  cvh.push_back(st);
  for (int i = 0; i < N; i++) {
    cvh.push_back(P[i]);
    while (cvh.size() >= 3 && ccw(cvh[cvh.size() - 3], cvh[cvh.size() - 2],
                                  cvh[cvh.size() - 1]) <= 0) {
      cvh.erase(cvh.end() - 2);
    }
  }
  int l = 1, r = (int)cvh.size() - 1;
  int idx = -1;
  while (l <= r) {
    int m = (l + r) >> 1;
    if (cmp(cvh[m], pair<int, int>(p, q))) {
      idx = m;
      l = m + 1;
    } else
      r = m - 1;
  }
  double s = 0, e = 1e9;
  for (int i = 0; i < 100; i++) {
    double m = (s + e) / 2;
    bool ok = false;
    for (int j = 0; j < cvh.size(); j++) {
      if (p <= m * cvh[j].first && q <= m * cvh[j].second) {
        ok = true;
        break;
      }
    }
    if (ok) {
      e = m;
      continue;
    }
    if (idx == -1 || idx == (int)cvh.size() - 1) {
      s = m;
      continue;
    }
    pair<double, double> t1 =
        pair<double, double>(m * cvh[idx].first, m * cvh[idx].second);
    pair<double, double> t2 = pair<double, double>(p, q);
    pair<double, double> t3 =
        pair<double, double>(m * cvh[idx + 1].first, m * cvh[idx + 1].second);
    if (ccw(t1, t2, t3) <= 0)
      e = m;
    else
      s = m;
  }
  printf("%.20lf", e);
}
