#1 runtime error
#include <bits/stdc++.h>
using namespace std;
int main(){
int a, b, c, d, x, fr = 0, fr1 = 0, num = 0;
vector <int> jr, jr1, xr, xr1;
cin >> a >> b >> c >> d;
jr.emplace_back(a);
jr.emplace_back(0);
jr.emplace_back(a);
jr.emplace_back(a);
jr1.emplace_back(0);
jr1.emplace_back(1);
jr1.emplace_back(1);
xr.emplace_back(0);
xr.emplace_back(0);
xr.emplace_back(0);
xr.emplace_back(a);
xr.emplace_back(a);
xr1.emplace_back(0);
xr1.emplace_back(1);
xr1.emplace_back(1);
xr1.emplace_back(1);
for(int i = 0; i < b-1; i++){
if(i >= jr.size()-1)
jr.emplace_back(jr[i]+jr[i-1]);
if(i >= jr1.size()-1)
jr1.emplace_back(jr1[i]+jr1[i-1]);
if(i >= xr.size()-1)
xr.emplace_back(xr[i]+xr[i-1]);
if(i >= xr1.size()-1)
xr1.emplace_back(xr1[i]+xr1[i-1]);
}
for(int i = 0; i < b-1; i++){
if(i == 0){
fr += jr[i]-xr[i];
continue;
}
if(i == 1 || i == 2){
if(i == 2) fr += a;
fr1 += 0;
continue;
}
else{
fr += jr[i]-xr[i];
fr1 += jr1[i]-xr1[i];
}
}
x = (c-fr)/fr1;
for(int i = 0; i < d; i++){
jr1[i] *= x;
xr1[i] *= x;
jr[i] += jr1[i];
xr[i] += xr1[i];
num += jr[i]-xr[i];
}
cout << num <<endl;
return 0;
}