#include <algorithm> #include <climits> #include <cmath> #include <cstdio> #include <cstdlib> #include <ctime> #include <iostream> #include <sstream> #include <functional> #include <map> #include <string> #include <cstring> #include <vector> #include <queue> #include <stack> #include <deque> #include <set> #include <list> #include <numeric> using namespace std; const double PI = 3.14159265358979323846; const double EPS = 1e-12; const int INF = 1<<25; typedef pair<int,int> P; typedef long long ll; typedef unsigned long long ull; ll a, b, c, d, a2, b2, c2, d2; bool block(){ if(a2<c2 || b2<d2) return false; if(a==0){ if(c!=0) return false; return b*d>0; } if(c2!=d2) return false; return a*c>0 && b*d>0; } int main(){ a, b, c, d; cin>>a>>b>>c>>d; if(abs(a)>abs(b)){ swap(a, b); swap(c, d); } if(a<0){ a *= -1; c *= -1; } if(b<0){ b *= -1; d *= -1; } a2 = abs(a), b2 = abs(b), c2 = abs(c), d2 = abs(d); ll res = max(a2, b2); if(a2!=b2) cout<<res<<endl; else if(block()) cout<<res+1<<endl; else cout<<res<<endl; return 0; }