//活动地址: 牛客春招刷题训练营 - 编程打卡活动
#include <bits/stdc++.h>
using namespace std;

void solve(){
    int a,b,x,y;
    // 这题真 难评.... 直接去看76哥的题解吧 针补费
    cin>>a>>b>>x>>y;
    int g=__gcd(x,y);
    // 
    if(a==b){
        if(a%2==0||b%2==0)
        cout<<a+b+1;//对角线重合
        else
        cout<<a+b+2;
    }
    else{
        int ans=(a+1)*2+(b+1)*2;
        ans-=2*(__gcd(a,b)+1);
        if(a%2==0||b%2==0)
        ans-=1;
        cout<<ans;
    }
}

int main() {
   int T=1;
   //cin>>T;
   while(T--){
    solve();
   }
}
//活动地址: 牛客春招刷题训练营 - 编程打卡活动
// 64 位输出请用 printf("%lld")