#include <stdio.h>     
#include <stdlib.h>    
#include <iostream>
#include <vector>
#include <algorithm>
#include <fstream>
#include <queue>
#include <deque>
#include <iomanip>
#include <cmath>
#include <set>
#include <stack>
#include <map>
#include <unordered_map>
#include<cstring>
typedef unsigned long long ull;
typedef long long ll;
using namespace std;
void solve()
{
    ll a,b,c,d;
    cin>>a>>b>>c>>d;
    ll cyan=a;
    ll red=0;
    ll ans=0;
    if(c*d-b==0||c*d-b<0)
    {
        cout<<-1;
        return;
    }

    while (cyan>d*red)
    {
        cyan+=b;
        red+=c;
        ans++;
    }
    
    cout<<ans;
}
int main()
 {
    ios_base::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int t=1;
	//cin>>t;
	while (t--)
	{
		solve();
	}
 }
#include <bits/stdc++.h>

using namespace std;

#define int long long int
#define f first
#define s second
#define pb push_back
#define pob pop_back
#define mk make_pair
#define vi vector<int>
#define pii pair<int, int>
#define mod 1000000007
#define set_pre(x, y) fixed << setprecision(y) << x
#define w(t)  \
    int t;    \
    cin >> t; \
    while (t--)

void init() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
}

void solve() {
    int a, b, c, d, n = 0, k = 0, cnt = 0, ans = 0;
    cin >> a >> b >> c >> d;

    if (b >= c * d) {
        cout << -1;
        return;
    }

    cout << ceil((a * 1.0) / (c * d - b));
}

int32_t main() {
    clock_t begin = clock();
    init();
    // Write your code here....

    solve();

    // code end.....

#ifndef ONLINE_JUDGE
    clock_t end = clock();
    std::cout << "\n\nExecuted In: " << double(end - begin) / CLOCKS_PER_SEC * 1000 << " ms";
#endif
    return 0;
}
