#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<stdbool.h>
#include<ctype.h>
#include<malloc.h>
#include<time.h>
#define ll long long
#define MAX(a,b) a>b?a:b
#define MIN(a,b) a<b?a:b
#define eps 1e-10
#define BLOCK_SIZE 20;
int map[30][30];
void get(int x,int y){
map[x][y]=1;
if(x>=2&&y>=1) map[x-2][y-1]=1;
if(x>=2) map[x-2][y+1]=1;
if(y>=1) map[x+2][y-1]=1;
if(x>=1&&y>=2) map[x-1][y-2]=1;
if(x>=1) map[x-1][y+2]=1;
if(y>=2) map[x+1][y-2]=1;
map[x+2][y+1]=1;
map[x+1][y+2]=1;
}
ll int count(int x,int y,int x0,int y0){
if(x>x0||y>y0||map[x][y]==1){
return 0;
}
if(x==x0&&y==y0){
return 1;
}
else{
return count(x+1,y,x0,y0)+count(x,y+1,x0,y0);
}
}
int main(){
int xm,ym,x0,y0;
scanf("%d %d %d %d",&x0,&y0,&xm,&ym);
get(xm,ym);
ll int num;
num=count(0,0,x0,y0);
printf("%lld",num);
return 0;
}