#include <iostream>
#include <cstring>
using namespace std;
int bx,by,hx,hy;
int count=0,count1=0;
int f[1000][1000]={0};
int xx[2]={1,0},yy[2]={0,1};
int ax[10]={0,1,1,-1,-1,2,2,-2,-2},ay[10]={0,2,-2,2,-2,1,-1,1,-1};
void dfs(int x,int y){
if(x==bx&&y==by){
count++;
return ;
}
for(int i=0; i<2; i++){
int Ax=x+xx[i], Ay=y+yy[i];
count1=0;
for(int j=0; j<=8; j++){
int Hx=hx+ax[i],Hy=hy+ay[i];
if(Ax!=Hx&&Ay!=Hy){
count1++;
}
else break;
}
if(Ax<=bx&&Ay<=by&&!f[Ax][Ay]&&count1==9){
f[Ax][Ay]=1;
dfs(Ax,Ay);
f[Ax][Ay]=0;
}
}
}
int main(){
cin>>bx>>by>>hx>>hy;
memset(f,0,sizeof(f));
f[0][0]=1;
dfs(0,0);
cout<<count<<endl;
return 0;
}