  #include <bits/stdc++.h>
  #define ll long long int
  #define ull unsigned long long int
  #define eb emplace_back
  #define mk make_pair
  using namespace std;
  void vec(vector<int> & v){

      for(int i = 0;i<v.size() ; i++){
          cout<<v[i]<< " ";
      }
      cout<<endl;
  }
  void vec_ll(vector<long long int> & v){

      for(int i = 0;i<v.size() ; i++){
          cout<<v[i]<< " ";
      }
      cout<<endl;
  }
  void vec_ull(vector<ull> & v){

      for(int i = 0;i<v.size() ; i++){
          cout<<v[i]<< " ";
      }
      cout<<endl;
  }
  int parsestring(string temp){
      int num= 0;
      int digs = temp.size() - 1;
      for(int i = 0 ;i<=digs;i++){
          num += pow(10 , digs -i)*(temp[i] - '0');
      }
      return num;
  }

  int main(){
      ios_base::sync_with_stdio(false);
      cin.tie(NULL);
      cout.tie(NULL);
      ll n,k;
      cin>>n>>k;
      bool poss =true;
      ll cur_pos = 0;
      vector<pair<ll ,ll >>v;
      for(ll i = 0;i<n;i++){
          ll a ,b;
          cin>>a>>b;
          v.eb(mk(a,b));
      }
      sort(v.begin() , v.end());
      for(int i = 0;i<n;i++){
          if(!poss)break;
          if(k >= v[i].first - cur_pos){
              k -= (v[i].first-cur_pos);
              cur_pos = v[i].first;
              k += v[i].second;
          }
          else{
              cur_pos += k;
              k = 0;
              poss = false;
              break;}
      }
      if(k)cur_pos += k;
      
      cout<<cur_pos<<endl;
  }
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define debug(x) cerr << #x << ": " << x << '\n'
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define reps(i, n, m) for (int i = (int)(n); i < (int)(m); i++)
#define ALL(obj) (obj).begin(), (obj).end()
#define rALL(obj) (obj).rbegin(), (obj).rend()

using ll = long long;
using ld = long double;
using intp = pair<int, int>;
using intmap = map<int, int>;
using intset = set<int>;
using vi = vector<int>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;

constexpr int MOD = 998244353;
constexpr int INF = 1 << 30;
constexpr ll LINF = 1LL << 62;
inline int mod(ll a, int m = MOD) { return (a % m + m) % m; }
inline bool bit(ll b, ll i) { return b & (1 << i); }
inline ll ceiv(ll a, ll b) { return (a + b - 1) / b; }
template<class T> bool chmin(T &a, T b) {if(a > b){a = b; return 1;} return 0;}
template<class T> bool chmax(T &a, T b) {if(a < b){a = b; return 1;} return 0;}

signed main() {
    int sx, sy, gx, gy;
    cin >> sx >> sy >> gx >> gy;
    ld ans;
    ans = -sy * (sx-gx);
    ans /= (sy + gy);
    ans += sx;
    printf("%.15Lf\n", ans);
}