#include<bits/stdc++.h>
using namespace std;
int A[20][20];
struct chess{
int x,y;
};
int main(){
chess m,b;
scanf("%d %d %d %d",&b.x,&b.y,&m.x,&m.y);
A[m.x][m.y]=0;
if(m.x+1<=4&&m.y+2<=4){
A[m.x+1][m.y+2]=-1;
}
if(m.x-1>=0&&m.y+2<=4){
A[m.x-1][m.y+2]=-1;
}
if(m.x+1<=4&&m.y-2>=0){
A[m.x+1][m.y-2]=-1;
}
if(m.x-1>=0&&m.y-2>=0){
A[m.x-1][m.y-2]=-1;
}
if(m.x+2<=4&&m.y+1<=4){
A[m.x+2][m.y+1]=-1;
}
if(m.x-2>=0&&m.y+1<=4){
A[m.x-2][m.y+1]=-1;
}
if(m.x+2<=4&&m.y-1>=0){
A[m.x+2][m.y-1]=-1;
}
if(m.x-2>=0&&m.y-1>=0){
A[m.x-2][m.y-1]=-1;
}
for(int i=0;i<=4;i++){
for(int j=0;j<=8;j++){
if(i!=0||j!=0){
if(A[i][j]!=-1){
if(i-1>=0){
if(j-1>=0){
A[i][j]=A[i][j-1]+A[i-1][j];
}
else{
A[i][j]=A[i-1][j];
}
}
else{
A[i][j]=A[i][j-1];
}
}
}
else{
A[i][j]=1;
}
}
}
printf("%d",A[b.x][b.y]);
return 0;
}