#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < n; i++)
typedef long long ll ;

int main(){
    double n , d , h;
    cin >> n >> d >> h ;
    vector<double> D(n) , H(n) ;
    double a = h / d ;
    double ans = 0 ;
    rep(i,n){
        cin >> D[i] >> H[i] ;
        if( a *(d - D[i]) > h - H[i]   ){
            a = ( h - H[i] ) / ( d - D[i] ) ;
            ans = h - d * a ;
        }
    }
    cout << ans << endl ;
}
//a.9
#include<bits/stdc++.h>
#define ll long long
#define all(x) x.begin(),x.end()
#define CASE(t) cout<<"Case #"<<(t)<<": ";
#define endll endl
#define endl '\n'
#define mod 1000000007
#define INF 1e18
#define maxN 500005
#define deb(x) cout << "[" << (#x) << "=" << x << "]" << '\n'
#define deb2(x,y) cout << "[" << (#x) << "=" << x << "] [" << (#y) << "=" << y << "]" << '\n'
#define deb3(x,y,z) cout << "[" << (#x) << "=" << x << "] [" << (#y) << "=" << y << "] [" << (#z) << "=" << z << "]" << '\n'
#define popcnt __builtin_popcountll
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL)
using namespace std;
ll ceill(ll a,ll b){return a/b+bool(a%b);}
ll gcd(ll a,ll b){if(b==0)return a;return gcd(b, a % b);}
ll lcm(ll a,ll b){return (a*b)/gcd(a,b);}
ll power(ll x,ll y){ll res=1;while(y>0){if(y&1)res=(res*x)%mod;x=(x*x)%mod;y>>=1;}return res;}
void bin(unsigned n,string &str){str="";if(n>1)bin(n>>1,str);str+=to_string(n&1);}
bool isPrime(ll n)
{
    if(n<=1)return false;if(n<=3)return true;if(n%2==0 || n%3==0)return false;
    for(ll i=5;i*i<=n;i=i+6)if(n%i==0 || n%(i+2)==0) return false; return true;
}
vector<ll> primeFactors(ll n)
{
    vector<ll>vec;
    while(n%2==0)vec.push_back(2),n/=2;
    for(ll i=3;i<=sqrt(n);i+=2)while(n%i==0)vec.push_back(i),n/=i;
    if(n>2)vec.push_back(n);
    return vec;
}
vector<ll>primes;
void SieveOfEratosthenes()
{
    bool prime[maxN];primes.clear();
    memset(prime, true, sizeof(prime));
    for(ll i=2;i*i<maxN;i++)if(prime[i]==true)for(ll j=i*i;j<maxN;j+=i)prime[j]=false;
    for(ll i=2;i<maxN;i++)if(prime[i])primes.push_back(i);
}
//vector<ll>fact(maxN);
//void factpre(){fact[0]=1;for(ll i=1;i<maxN;i++)fact[i]=(fact[i-1]*1LL*i);}
//ll mul(ll a,ll b){return (a*1LL*b)%mod;}
//ll nCr(ll n,ll k){return mul(fact[n],power(mul(fact[k],fact[n-k]),mod-2));}
void solve()
{
    double n,d,h;cin>>n>>d>>h;
    double ans=0;
    for(double i=0;i<n;i++)
    {
        double di,hi;cin>>di>>hi;
        double tmp=(d*double(hi)-double(di)*h)/double(d-di);
        ans=max(ans,tmp);
    }
    cout<<fixed<<setprecision(12)<<ans<<endl;
}
signed main()
{
    ios;
    ll tc=1; //cin>>tc;
    for(ll t=1;t<=tc;t++)
    {
        //CASE(t);
        solve();
    }
}
