#include //#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include //using namespace atcoder; using namespace std; using ll = long long; #define all(A) A.begin(),A.end() using vll = vector; #define rep(i, n) for (long long i = 0; i < (long long)(n); i++) using Graph = vector>>; vector seen; bool C = true; vector dist; ll mod = 998244353; int main() { ll A, B, N, M; cin >> A >> B >> N >> M; if (A < B) { cout << A + (B - A) / (M + 1) << endl; } else { cout << B + (A - B) / (N + 1) << endl; } }