#include <bits/stdc++.h>
using namespace std;
int main(){
  long long A, B, N, M;
  cin >> A >> B >> N >> M;
  long long tv = 0, fv = 1000000000000000001;
  while (fv - tv > 1){
    long long mid = (tv + fv) / 2;
    bool ok = false;
    if (A >= mid && B >= mid){
      ok = true;
    }
    if (A >= mid && B < mid){
      if ((A - mid) / N >= mid - B){
        ok = true;
      }
    }
    if (A < mid && B >= mid){
      if ((B - mid) / M >= mid - A){
        ok = true;
      }
    }
    if (ok){
      tv = mid;
    } else {
      fv = mid;
    }
  }
  cout << tv << endl;
}