//Normal #define _GLIBCXX_DEBUG #define ll long long #include using namespace std; using Graph = vector>; void print(auto a){ cout << a; } void prints(auto a){ cout << a << " "; } void prints(){ cout << " "; } void printl(auto a){ cout << a << endl; } void printl(){ cout << endl; } void fix(int n){ cout << fixed << setprecision(n); } int main(){ int A, B, C, D; cin >> A >> B >> C >> D; int start = A; while(true){ bool flag = true; if(A == 0){ flag = false; } if(B < C){ flag = false; } if(D < 1+C){ flag = false; } if(!flag){ printl(start-A); return 0; } D -= (1+C); A--; B -= C; } }