#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using ld=long double;
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define read freopen ("in.txt","r",stdin);
#define out freopen ("out.txt","w",stdout);
#define sz(x) int((x).size())
#define rep0(i,k) for (int i=0 ; i<k ; i++)
#define rep(i,k)  for (int i=1 ; i<=k ; i++)
#define reset(a,b)   memset(a, (b), sizeof(a))
#define sortv(k)     sort(k.begin(),k.end())
#define sortg(k)     sort(k.begin(),k.end(),greater<int>())
#define rev(k)       reverse(k.begin(),k.end())
#define umin(a,b)    a=min(a,b)
#define umax(a,b)    a=max(a,b)
#define min3(a,b,c)  min(a, min(b,c))
#define pyes         cout<<"YES"<<endl
#define pno          cout<<"NO"<<endl;
#define ff first
#define ss second
#define lb lower_bound
#define ub upper_bound
#define pb push_back
#define mpr make_pair
#define pi acos(-1.0)
typedef pair<int,int>pii;
typedef pair<ll,ll>pll;
constexpr ll imax=1e9;
constexpr ll imin=-1e9;
constexpr ll MOD=1e9+7;
const int limit=1000001;



void solution(){

    ll a,b,c,d;
    cin>>a>>b>>c>>d;
    if(d*c-b<=0) cout<<-1;
    else{

        ll x=d*c-b;
        ll y=a/x;
        if(a%x) y++;
        cout<<y;
    }
    return;
}
int main()
{
    fast;
    //read;
    //out;
    int tc=1;
    //cin>>tc;
    while(tc--) solution();
    return 0;
}


#include <bits/stdc++.h>
using namespace std;

using lli = int64_t;
using ld = long double;

lli g = 10000;

lli dist(lli x1, lli y1, lli x2, lli y2)
{
    return (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);
}

lli bsearch(lli x, lli y, lli r, lli y1, lli l, lli h, bool fl)
{
    lli ans = LLONG_MAX;

    while (l <= h)
    {
        lli mid = l + (h - l) / 2;
        mid -= mid % g;

        if (dist(x, y, mid, y1) <= r * r)
        {
            ans = mid;

            (fl ? l : h) = mid + (fl ? g : -g);
        }
        else
            (fl ? h : l) = mid + (fl ? -g : g);
    }

    return ans;
}

lli calc(lli x, lli y, lli r, lli y1)
{
    lli rx = x;
    rx -= rx % g;

    lli mid = LLONG_MAX;

    if (dist(x, y, rx, y1) <= r * r)
        mid = rx;
    else
    if (dist(x, y, rx + g, y1) <= r * r)
        mid = rx + g;

    if (mid == LLONG_MAX) return 0;

    lli rl = x - r;
    lli rr = x + r;

    rl -= rl % g;
    rr -= rr % g;
    rr += g;

    lli l = bsearch(x, y, r, y1, rl, mid, false);
    lli h = bsearch(x, y, r, y1, mid, rr, true);

    return (h - l) / g + 1;
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    ld xd, yd, rd; cin >> xd >> yd >> rd;
    
    lli x = llroundl(xd * ld(g));
    lli y = llroundl(yd * ld(g));
    lli r = llroundl(rd * ld(g));

    lli ans = 0;

    for (lli y1 = y - y % g; y - y1 <= r; y1 -= g)
        ans += calc(x, y, r, y1);

    for (lli y1 = y - (y % g) + g; y1 - y <= r; y1 += g)
        ans += calc(x, y, r, y1);

    cout << ans << endl;
    return 0;
}
