//***JAI SHREE KRISHNA***
#include<bits/stdc++.h>
using namespace std;
#define int             long long
#define pb              push_back
#define mp              make_pair
#define pii             pair<int,int>
#define inf             1e18
#define MAX             INT_MAX
#define MIN             INT_MIN
#define F               first
#define S               second
#define pbmax           priority_queue<int>//max heap
#define pbmin           priority_queue<int, vector<int>, greater<int>>//min heap priority_queue
#define lpi(i,a,b)      for(int i=0;i<n;i++)
#define lpd(i,a,b)      for(int i=a;i>=b;i--)
const double pi = 3.14159265359;
const int mod = 1e9 + 7;
void task()
{
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    int ans = -1;
    int blue = a;
    int red = 0;
    for (int i = 1; i <= 1e5; i++)
    {


        blue += b;
        red += c;
        if (blue  <= (red )*d)
        {
            ans = i;
            break;
        }


    }
    cout << ans;
}
int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    int test_cases = 1;
    //cin >> test_cases;
    while (test_cases--)
    {
        task();
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
//#include<atcoder/all>
//using namespace atcoder;
using ll = long long;
#define INF32 2147483647
const long long INF = 1LL << 60;
template<class T> bool chmax(T &a,const T &b){if(a<b){a=b;return 1;} return 0;}
template<class T> bool chmin(T &a,const T &b){if(b<a){a=b;return 1;} return 0;}

int main(){
    int A,B,C,D;
    cin >> A >> B >> C >> D;
    double CD_B = C * D - B;
    double ans = 0;
    if(CD_B <= 0 ){
        cout << -1 << endl;
    }else{
        ans = A / CD_B;
        cout << ceil(ans) << endl;
    }

    return 0;
}