#include<iostream>
using namespace std;
bool k[10000][10000];
int xm,ym,xb,yb;
long long sum=0;
void dfs(int a,int b)
{
if((a>=xb)||(b>=yb)) return;
if((a==xb)&&(b==yb)){
sum++;
return;
}
if(k[a+1][b]=false) dfs(a+1,b);
if(k[a][b+1]=false) dfs(a,b+1);
return;
}
int main(){
cin>>xb>>yb>>xm>>ym;
k[xm][ym]=true;//0
k[xm+2][ym+1]==true;//2
k[xm+1][ym+2]==true;//1
if(ym-1>=0){
k[xm+2][ym-1]==true;//3
if(ym-2>=0){
k[xm+1][ym-2]==true;//4
if(xm-1>=0){
k[xm-1][ym-2]==true;//5
}
}
if(xm-2>=0){
k[xm-2][ym-1]==true;//6
}
}
if(xm-1>=0){
k[xm-1][ym+2]=true;//8
if(xm-2>=0) k[xm-2][ym+1]=true;//7
}
dfs(0,0);
cout<<sum;
return 0;
}