#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("Ofast")

#include <bits/stdc++.h>

#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
using namespace __gnu_pbds;

#define deb(x) cout << #x << " is " << x << "\n"
#define int long long
#define MOD 1000000007LL
#define PI acos(-1)

template <typename T>
using min_heap = priority_queue<T, vector<T>, greater<T>>;

template <typename T>
using max_heap = priority_queue<T>;

template <class T>
using ordered_set = tree<T, null_type, less_equal<T>, rb_tree_tag, tree_order_statistics_node_update>;

template <typename... T>
void read(T &...args) {
	((cin >> args), ...);
}

template <typename... T>
void write(T &&...args) {
	((cout << args), ...);
}

template <typename T>
void readContainer(T &t) {
	for (auto &e : t) {
		read(e);
	}
}

template <typename T>
void writeContainer(T &t) {
	for (const auto &e : t) {
		write(e, " ");
	}
	write("\n");
}

auto speedup = []() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	return nullptr;
}();

void solve(int tc) {
	int n, s, d, x, y;
	read(n, s, d);
	bool ok = false;
	while (n--) {
		read(x, y);
		if (x < s && y > d) {
			ok = true;
			break;
		}
	}
	write((ok ? "Yes" : "No"));
}

signed main() {
	int tc = 1;
	// read(tc);
	for (int curr = 1; curr <= tc; curr++) {
		solve(curr);
	}
	return 0;
}
#include <bits/stdc++.h>
using namespace std;

int main() {
    int N;
    float D,H;
    cin >> N >> D >> H;
    float d[N],h[N];
    for (int i=0;i<N;i++){
        cin >> d[i] >> h[i];
    }
    float ka,high,max=0;
    for (int i=0;i<N;i++){
        ka=abs(H-h[i])/abs(D-d[i]);
        high=H-ka*D;
        if (high>max){
            max=high;
        }
    }
    if (max<0){
        max=0;
    }
    cout << max << endl;
    return 0;
}