#include <bits/stdc++.h>
using namespace std;
int n, p, q;
const int N = 200000;
struct node {
  int a, b;
} S[N];
int comp(node x, node y) { return x.a < y.a; }
double ans = 1e20;
int sta[N], top;
int main() {
  scanf("%d%d%d", &n, &p, &q);
  for (int i = 1; i <= n; ++i) scanf("%d%d", &S[i].a, &S[i].b);
  sort(S + 1, S + n + 1, comp);
  for (int i = 1; i <= n; ++i) {
    while (top >= 2 && 1ll * (S[sta[top]].a - S[sta[top - 1]].a) *
                                   (S[i].b - S[sta[top - 1]].b) -
                               1ll * (S[sta[top]].b - S[sta[top - 1]].b) *
                                   (S[i].a - S[sta[top - 1]].a) >=
                           0)
      top--;
    sta[++top] = i;
  }
  for (int i = 1; i < top; ++i) {
    double x2 = (q - (long double)1.0 * S[sta[i]].b * p / S[sta[i]].a) /
                (S[sta[i + 1]].b - (long double)1.0 * S[sta[i + 1]].a *
                                       S[sta[i]].b / S[sta[i]].a);
    double x1 = (p - x2 * S[sta[i + 1]].a) / S[sta[i]].a;
    if (x1 > -1e-10 && x2 > -1e-10) ans = min(ans, x1 + x2);
  }
  for (int i = 1; i <= n; ++i)
    ans = min(ans, max(1.0 * p / S[i].a, 1.0 * q / S[i].b));
  printf("%.10lf\n", ans);
}
