#pragma GCC optimize("Ofast")
#include<bits/stdc++.h>
#include<iostream>
#include<cmath>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;


#define mod 1000000007
#define one(x)   __builtin_popcountll(x)
#define zero(x)  __builtin_ctzll(x)
#define pp pair<ll,ll>
#define all(x) (x).begin(), (x).end()
#define removeDuplicates(a) a.resize(unique(all(a))-a.begin())
template<class T> using oset =tree<T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update> ;
typedef long long int ll;


const int mxn = 2e5 + 10;


/*
ll n,q;
ll ar[200001];
ll t[800004];

 void build(ll index,ll l, ll r){
     if(l==r){
         t[index]=ar[l];
         return ;
     }
     ll mid=(l+r)/2 ;
     build(index*2,l,mid);
     build(index*2+1,mid+1,r);
     t[index]=t[index*2]^t[index*2+1];
 }

 void update(ll index, ll l ,ll r, ll pos, ll val){
     if(pos<l || pos>r){
         return;
     }
     if(l==r){
         t[index]=val;
         ar[l]=val;
         return ;
     }
     ll mid=(l+r)/2 ;
     update(index*2,l,mid,pos,val);
     update(index*2+1,mid+1,r,pos,val);
     t[index]=min(t[index*2],t[index*2+1]);
 }

 ll query(ll index,ll l, ll r, ll lq, ll rq){
     if(rq<l || lq>r){
         return 0;
     }
     if(lq<=l && r<=rq){
         return t[index];
     }

     ll mid=(l+r)/2 ;
     return query(index*2,l,mid,lq,rq)^query(index*2+1,mid+1,r,lq,rq);
 }*/

//ll a[mxn];


void subMain(){
    ll a, b, c, d;
    cin >> a >> b >> c >> d;
    ll blue = a, red = 0;
    for(ll i = 1; i <= a; i++){
        blue+=b;
        red+=c;
        if(blue<=red*d){
            cout << i << "\n";
            return;
        }
    }
    cout << -1 << "\n";
}



int main(){

	ios_base::sync_with_stdio(false);
	cin.tie(0); cout.tie(0);

    /*ll t, i = 0;
	cin >> t;
	while(t--){
        //cout << "Case #" << i+1 << ": ";
        subMain();
        //i++;
	}*/
	subMain();
	cerr<<"Time : "<<1000*((double)clock())/(double)CLOCKS_PER_SEC<<"ms\n";
	return 0;
}




#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;

int main() {
  double Sx, Sy, Gx, Gy;
  cin >> Sx >> Sy >> Gx >> Gy;

  double a = (Gy + Sy) / (Gx - Sx);
  double c = Gy - (a * Gx);
  double b = (-1 * c) / a;

  cout << fixed << setprecision(10) << b << endl;
  return 0;
}
