#include <bits/stdc++.h>
#define ll long long int
#define vec vector<ll>
#define vecp vector<pair<ll,ll> >
#define mapp map<ll,ll>
#define mapit map<ll,ll>::iterator
#define mapr map<pair<ll,ll>,ll>
#define maprit map<pair<ll,ll>,ll>::iterator
#define fs first
#define sc second
#define bg begin()
#define en end()
#define pb push_back
#define fin(x,y) for(x=0;x<y;x++)
#define fin1(x,y) for(x=1;x<y;x++)
#define mod1 1000000007
#define INF 1000000000000000000
#define twodp vector<vec >dp(n+1,vec(k+1,0))
#define all(x) x.bg,x.en
#define rel(x) x.rbegin(),x.rend()
using namespace std;
ll gcd(ll a,ll b)
{
  if(a==0 || b==0)
    return a+b;
  else
    return __gcd(a,b);
}
int main()
{
     ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
  ll a,b;cin>>a>>b;
  ll i,j,k,l;ll ans=0;
  fin1(i,a+1)
  {
    fin1(j,b+1)
    {
      l=j+100*i;
      ans+=l;
    }
  }
  cout<<ans;
  return 0;
}
/**
*    author:  shu8Cream
*    created: 02.05.2021 10:37:54
**/

#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0; i<(n); i++)
#define all(x) (x).begin(), (x).end()
using ll = long long;
using P = pair<ll,ll>;
using vi = vector<double>;
using vvi = vector<vi>;

int n;
double D,H;

bool check(double mid, vi &d, vi & h){
    rep(i,n){
        if((h[i]-mid)*D>(H-mid)*d[i]) return false;
    }
    return true;
}

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    cin >> n >> D >> H;
    vi d(n),h(n);
    rep(i,n) cin >> d[i] >> h[i];
    double ok = 0.0, ng = 10000.0;
    int loop = 100;
    while(loop--){
        double mid = (ok + ng) / 2.0;
        if(check(mid,d,h)) ng = mid;
        else ok = mid; 
    }
    printf("%.10lf\n", ok);
}