#include<iostream>
#include<cmath>

using namespace std;

struct KordinateTemena{
    long long int x;
    long long int y;
};

int main(void)
{
    KordinateTemena tacka1, tacka2;
    long long int a = 0, b =0;

    cin>>tacka1.x>>tacka1.y;
    cin>>tacka2.x>>tacka2.y;

    if(tacka1.x==tacka2.x || tacka1.y==tacka2.y)
        cout<<"2"<<endl;
    else if((tacka1.x<0 && tacka2.x>0) || (tacka1.x>0 && tacka2.x<0)){
        a=abs(tacka1.x)+abs(tacka2.x);
        if((tacka1.y<0 && tacka2.y>0) || (tacka1.y>0 && tacka2.y<0))
            b=abs(tacka1.y)+abs(tacka2.y);
        else
            b=max(tacka1.y,tacka2.y)-min(tacka1.y,tacka2.y);

        if(a==b)
            cout<<"1"<<endl;
        else
            cout<<"0"<<endl;

    }
    else if((tacka1.y<0 && tacka2.y>0) || (tacka1.y>0 && tacka2.y<0)){
        a=abs(tacka1.y)+abs(tacka2.y);
        if((tacka1.x<0 && tacka2.x>0) || (tacka1.x>0 && tacka2.x<0))
            b=abs(tacka1.x)+abs(tacka2.x);
        else
            b=max(tacka1.x,tacka2.x)-min(tacka1.x,tacka2.x);

        if(a==b)
            cout<<"1"<<endl;
        else
            cout<<"0"<<endl;

    }
    else if((max(tacka1.x,tacka2.x)-min(tacka1.x,tacka2.x))==(max(tacka1.y,tacka2.y)-min(tacka1.y,tacka2.y)))
        cout<<"1"<<endl;
    else
        cout<<"0"<<endl;

    return 0;

}