#include <bits/stdc++.h>
#define For(i,l,r) for (register int i=l; i<=r; i++)
using namespace std;
typedef unsigned long long LL;
typedef signed long long ll;
template <typename T>
inline void read(T &x) {
	char c = getchar(); int w = 1; x = 0;
	while (!isdigit(c))
		(c == '-') && (w = -w), c = getchar();
	while (isdigit(c))
		x = (x << 1) + (x << 3) + (c ^ '0'), c = getchar();
	x *= w;
}

ll A, B, C, D;
signed main() {
	read(A); read(B); read(C); read(D);
	if (C * D - B <= 0) puts("-1");
	else cout << ceil(double(A * 1.0 / (C * 1.0 * D - B)));
	getchar();
	return 0;
}
#pragma region

#ifdef RYLOCAL
#include "lab.hpp"
#else
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
#endif

using namespace std;
typedef long long ll;

#define INF 0x3f3f3f3f
#define dbg(x) printf("%lld ", (x));
#define LN putchar('\n')

#pragma endregion

int main() {
    int a, b, c, d;
    cin >> a >> b >> c >> d;
    if (b >= c * d)
        puts("-1");
    else {
        
        printf("%lld\n", (ll)ceil((double)a /(d * c - b)));
    }
    return 0;
}