import java.io.*;
import java.util.*;
import java.math.*;

public class p481b {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long cnt1 = sc.nextLong();
        long cnt2 = sc.nextLong();
        long x = sc.nextLong();
        long y = sc.nextLong();
        long v1 = (x * cnt1) / (x - 1);
        if ((x * cnt1) % (x - 1) == 0) {
            v1--;
        }
        long v2 = (y * cnt2) / (y - 1);
        if ((y * cnt2) % (y- 1) == 0) {
            v2--;
        }
        if (v1 >= v2) {
            long c = v1 - cnt1 - v1 / (x * y);
            if (c < cnt2) {
                long res = cnt2 - c;
                long temp = v1 + res;
                long r = temp / y - v1 / y;
                if (r != 0) {
                    v1 = temp + r;
                }
                if (v1 % y == 0) {
                    v1++;
                }
            }
            System.out.println(v1);
        } else {
            long c = v2 - cnt2 - v2 / (x * y);
            if (c < cnt1) {
                long res = cnt1 - c;
                long temp = v2 + res;
                long r = temp / x - v2 / y;
                if (r != 0) {
                    v2 = temp + r;
                }
                if (v2 % x == 0) {
                    v2++;
                }
            }
            System.out.println(v2);
        }
    }
}