#include<iostream>
#include<string>
#include<algorithm>
#include<vector>
#include<set>
#include<map>
#include <functional>
#include <iomanip>
#include<cmath>

#define rep(i, n) for (int i = 0; i < (int)(n); i++)
using namespace std;
using ll = long long;

int GetDigit(ll num) {

	int a = 0;
	while (num) {
		num /= 10;
		a++;
	}
	return a;
}

ll Get_keta_num(ll num) {
	ll z = 0;
	while (num) {
		z += num % 10;
		num /= 10;
	}
	return z;
}

void print(set<int> s) {
	for (set<int>::iterator it = s.begin(); it != s.end(); it++) {
		cout << *it << " ";
	}
	cout << endl;
}

ll count_num_2(ll num) {
	ll data = 0;
	while (true) {
		ll m = num % 1000;
		ll k = num % 100;
		if ((m % 8) == 0) {
			data += 3;
			num /= 8;
			continue;
		}
		else if ((k % 4) == 0) {
			data += 2;
			num /= 4;
			continue;
		}
		else if ((k % 2) == 0) {
			data++;
			num /= 2;
			continue;
		}
		break;
	}
	return data;
}
ll facctorialMethod(int k) {
	ll sum = 1;
	for (int i = 1; i <= k; ++i)
	{
		sum *= i;
	}
	return sum;
}
//" "

ll Get_num_in_string(string s) {
	int n = s.length(), z;
	ll sur = 0;
	for (int i = 0; i < n; i++) {
		z = int(s[i] - '0');
		if (z < 10) {
			sur *= 10;
			sur += z;
		}
	}
	return sur;
}

ll ll_pow(int num, int zyousuu) {
	ll ans = 1;
	for (int i = 0; i < zyousuu; i++) {
		ans *= num;
	}

	return ans;
}
string substrBack(std::string str, size_t pos, size_t len) {
	const size_t strLen = str.length();

	return str.substr(strLen - pos, len);
}

ll ll_gcd(ll x, ll y) {
	if (x < y) {
		ll a = x;
		x = y;
		y = a;
	}

	while (y > 0) {
		ll r = x % y;
		x = y;
		y = r;
	}
	return x;
}

int main() {
	ll a, b, c; cin >> a >> b >> c;
	ll a_num = (a + 1) * a / 2;
	a_num %= 998244353;
	ll c_num = (c + 1) * c / 2;
	ll b_num = (b + 1) * b / 2;
	c_num %= 998244353;
	b_num %= 998244353;


	a_num = (a_num * b_num) % 998244353;
	a_num= (a_num * c_num) % 998244353;
	cout << a_num << endl;

	return 0;
}

#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>
#include <utility>
#include <cmath>
#include <vector>
#include <stack>
#include <queue>
#include <deque>
#include <set>
#include <unordered_set>
#include <map>
#include <tuple>
#include <numeric>
#include <functional>
using namespace std;
typedef long long ll;
typedef vector<ll> vl;
typedef vector<vector<ll>> vvl;
typedef pair<ll, ll> P;
#define rep(i, n) for(ll i = 0; i < n; i++)
#define exrep(i, a, b) for(ll i = a; i <= b; i++)
#define out(x) cout << x << endl
#define exout(x) printf("%.5f\n", x)
#define chmax(x, y) x = max(x, y)
#define chmin(x, y) x = min(x, y)
#define all(a) a.begin(), a.end()
#define rall(a) a.rbegin(), a.rend()
#define pb push_back
#define re0 return 0
const ll mod = 1000000007;
const ll INF = 1e16;
 
int main() {
    ll n;
    double D, H;
    cin >> n >> D >> H;

    double ans = 0.0;
    rep(i, n) {
        double d, h;
        cin >> d >> h;
        double k = (H - h) / (D - d);
        chmax(ans, h - k * d);
    }

    exout(ans);    
    re0;
}