#include<bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    double d,h;
    cin>>n>>d>>h;

    double x[n];
    double y[n];
    for(int i=0;i<n;i++)
    {
        cin>>x[i]>>y[i];
    }

    double ymin=INT_MAX;
    for(int i=0;i<n;i++)
    {
        bool nope=false;
        double yc;
        for(int j=0;j<n;j++)
        {
            yc=((h-y[i])/(d-x[i]))*(x[j]-x[i]) + y[i];
            if(yc-y[j] < 0){
                nope=true;
                break;
            }
        }
        if(!nope)
        {
            yc=y[i]-((h-y[i])/(d-x[i]))*(x[i]);
            if(ymin>yc)
                ymin=yc;
        }
    }
    if(ymin<0)
        ymin=0.0;
    cout<<ymin<<endl;
}

#include<bits/stdc++.h>
#define pb push_back
#define endl ("\n")
#define mp make_pair
#define lb lower_bound
#define int long long
#define up upper_bound
#define M  1000000007LL
#define yy cout<<"Yes"<<endl;
#define nn cout<<"No"<<endl;
#define rep(i, a, n) for (int i = a; i < n; i++)
#define mod 1000000007
using namespace std;



int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int t;
    t = 1;
    //  cin >> t;

    while (t--)
    {
        int n, du, hu;
        cin >> n >> du >> hu;
        int d[n], h[n];
        double ans = M;
        rep(i, 0, n)
        {
            cin >> d[i] >> h[i];
            ans = min(ans, (hu - h[i]) / (du - d[i] + 0.0));

        }
        cout << (max(0.0, hu - ans * du));



    }
    return 0;
}