#define _USE_MATH_DEFINES

#include <iostream>
#include <cstring>
#include <regex>
#include <cmath>
#include <algorithm>
#include <vector>
#include <list>
#include <map>
#include <unordered_set>
#include <queue>
#include <unordered_map>
#include <set>
#include <cassert>
#include <climits>

#pragma GCC optimize("O3")

using namespace std;
using ll = long long;
using ull = unsigned long long;

#define rep(i, n) for(ll i = 0, i##_len = (n); i < i##_len; ++i)
#define repd(i, n) for(ll i = (n) - 1ll; i >= 0; --i)
#define FOR(i, a, b) for(ll i = a; i < ll(b); ++i)
#define FORD(i, a, b) for(ll i = a; i > ll(b); --i)
#define foreach(i, itr) for(auto& i : (itr))
#define asort(arr, size) std::sort(arr, arr + size)
#define dsort(arr, size) std::sort(arr, arr + size, [](auto a, auto b) { return a > b; })
#define cauto const auto&
#define bit(n) (1LL << (n))

////////////////////////////////////
// ここから下に任意のコードを書く //
////////////////////////////////////

int d[200];
int h[200];

int main()
{
    int N, D, H;
    cin >> N >> D >> H;
    rep(i, N) cin >> d[i] >> h[i];
    double res = 0;
    rep(i, N) {
        double dx = D - d[i];
        double dy = H - h[i];
        double slope = dy / dx;
        // y = slope * x + n
        // H = slope * D + n
        // H - n = slope * D
        // -n = slope * D - H
        // n = -(slope * D - H)
        auto n = -(slope * D - H);
        res = max(res, n);
    }
    cout << res << endl;
    return 0;
}

#include <bits/stdc++.h>
#define mk make_pair
#define fs first
#define sc second
using namespace std;
typedef long long ll;
typedef long double ld;
// please, read the question correctly (do you need set or multiset)???
const int N=200010; //check the limits, dummy
int a[N], d[N], h[N];
int n, m, H, D;
bool chck(double x){
	for(int i=0; i<n; ++i){
		double tmp = (H-x)/(double)D;
		if(tmp*d[i]+x<h[i])
			return 0;
	}
	return 1;
}
int main(){
	scanf("%d%d%d",&n,&D,&H);
	for(int i=0; i<n; ++i){
		scanf("%d%d",&d[i],&h[i]);
	}
	double st = 0, nd = 1000, md;
	int cnt = 100;
	while(cnt--){
		md = (st+nd)/2.0;
		if(chck(md)){
			nd = md;
		}
		else{
			st = md;
		}
	}
	cout<<fixed<<setprecision(9)<<md<<endl;
}