#include int ri() { int n; scanf("%d", &n); return n; } int main() { int64_t a, b, c, d; std::cin >> a >> b >> c >> d; if (a > b) { int64_t cnt = (a - b) / (c + 1); a -= c * cnt; b += cnt; while (std::min(a, b) < std::min(a - c, b + 1)) a -= c, b++; } else { int64_t cnt = (b - a) / (d + 1); a += cnt; b -= d * cnt; while (std::min(a, b) < std::min(a + 1, b - d)) b -= d, a++; } printf("%" PRId64 "\n", std::min(a, b)); return 0; }