#include <bits/stdc++.h>
using namespace std;
template <typename T>
ostream& operator<<(ostream& s, vector<T>& v) {
  s << '{';
  for (int i = 0; i < v.size(); ++i) s << (i ? "," : "") << v[i];
  return s << '}';
}
template <typename S, typename T>
ostream& operator<<(ostream& s, pair<S, T>& p) {
  return s << "(" << p.first << "," << p.second << ")";
}
float A[400][100005];
int basis[400], out[100005];
void pivot(int m, int n, int a, int b) {
  for (int i = (0); i < (m + 1); i++)
    if (i - a)
      for (int j = (0); j < (n + 1); j++)
        if (j - b) A[i][j] -= A[a][j] * A[i][b] / A[a][b];
  for (int j = (0); j < (n + 1); j++)
    if (j - b) A[a][j] /= A[a][b];
  for (int i = (0); i < (m + 1); i++)
    if (i - a) A[i][b] /= -A[a][b];
  A[a][b] = 1 / A[a][b];
  swap(basis[a], out[b]);
}
float simplex(int m, int n, float C[][100005], float X[]) {
  int ii, jj;
  for (int i = (1); i < (m + 1); i++)
    for (int j = (0); j < (n + 1); j++) A[i][j] = C[i][j];
  for (int j = (0); j < (n + 1); j++) A[0][j] = -C[0][j];
  for (int i = (0); i < (m + 1); i++) basis[i] = -i;
  for (int j = (0); j < (n + 1); j++) out[j] = j;
  for (;;) {
    ii = 1;
    for (int i = (1); i < (m + 1); i++)
      if (make_pair(A[i][n], basis[i]) < make_pair(A[ii][n], basis[ii])) ii = i;
    if (A[ii][n] >= -1e-9) break;
    jj = 0;
    for (int j = (0); j < (n); j++)
      if (make_pair(A[ii][j], out[j]) < make_pair(A[ii][jj], out[jj])) jj = j;
    if (A[ii][jj] >= -1e-9) return -1.0 / 0.0;
    pivot(m, n, ii, jj);
  }
  for (;;) {
    jj = 0;
    for (int j = (0); j < (n); j++)
      if (make_pair(A[0][j], out[j]) < make_pair(A[0][jj], out[jj])) jj = j;
    if (A[0][jj] > -1e-9) break;
    ii = 0;
    for (int i = (1); i < (m + 1); i++)
      if (A[i][jj] > 1e-9 &&
          (!ii || make_pair(A[i][n] * A[ii][jj], basis[i]) <
                      make_pair(A[ii][n] * A[i][jj], basis[ii])))
        ii = i;
    if (A[ii][jj] <= 1e-9) return 1.0 / 0.0;
    pivot(m, n, ii, jj);
  }
  for (int j = (0); j < (n); j++) X[j] = 0;
  for (int i = (1); i < (m + 1); i++)
    if (basis[i] >= 0) X[basis[i]] = A[i][n];
  return A[0][n];
}
float CC[3][100005];
float Result[100005];
int main() {
  int N;
  float A, B;
  cin >> N >> A >> B;
  for (int i = (0); i < (N); i++) {
    CC[0][i] = -1;
  }
  for (int i = (0); i < (N); i++) {
    float a, b;
    cin >> a >> b;
    CC[1][i] = -a;
    CC[2][i] = -b;
  }
  CC[1][N] = -A;
  CC[2][N] = -B;
  float ans = simplex(2, N, CC, Result);
  printf("%0.9f\n", -ans);
}
