#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //#define int long long #define rep(i,s,n) for(int i = s;i=(s);i--) #define all(v) (v).begin(),(v).end() #define pb push_back #define fi first #define se second #define chmin(a,b) a=min((a),(b)) #define chmax(a,b) a=max((a),(b)) #define l1 list[index] #define l2 list[index - 1] #define l3 list[index + 1] #define iif(i,j) ((i<0 && j<0) || (i>0 && j>0)) ? true : false typedef long long ll; typedef pairpint; typedef vectorvint; typedef vectorvpint; typedef pair P1; typedef pair P2; typedef pair PP; static const ll maxLL = (ll)1 << 62; const ll MOD = 1000000007; const ll INF = 1e18; int ca[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 }; signed main() { string s; int n, k, cnt = 0; vectorlist(10005, 99999999); ll x, y, x2, y2; int flag1, flag2; cin >> x >> y >> x2 >> y2; if (x >= 0 && y >= 0)flag1 = 0; if (x >= 0 && y <= 0)flag1 = 1; if (x <= 0 && y >= 0)flag1 = 2; if (x <= 0 && y <= 0)flag1 = 3; if (x2 >= 0 && y2 >= 0)flag2 = 0; if (x2 >= 0 && y2 <= 0)flag2 = 1; if (x2 <= 0 && y2 >= 0)flag2 = 2; if (x2 <= 0 && y2 <= 0)flag2 = 3; if ((abs(x) == abs(y) && abs(x2) == abs(y2) && flag1 == flag2 && abs(x) > abs(x2) ) ) { cout << abs(x) + 1 << endl; } else { cout << max(abs(x), abs(y)) << endl; } /*if ((x == 0 && x2 == 0 && y > y2) || (y == 0 && y2 == 0 && x > x2)) { }*/ getchar(); getchar(); return 0; }