#include <iostream>
using namespace std;
int main()
{
int a1,b1,a2,b2;
cin>>a1>>b1>>a2>>b2;
long long maps[a1+1][b1+1];
for(int i=0;i<=a1;i++){
for(int j=0;j<=b1;j++){
maps[i][j]=0;
}
}
for(int i=0;i<a1+1;i++)
maps[i][0]=1;
for(int i=0;i<b1+1;i++)
maps[0][i]=1;
if(a2<=a1-2&&b2<=b1-1)
maps[a2+2][b2+1]=-1;
if(a2<=a1-1&&b2<=b1-2)
maps[a2+1][b2+2]=-1;
if(a2>=1&&a2<=a1+1&&b2<=b1-2)
maps[a2-1][b2+2]=-1;
if(a2>=2&&a2<=a1+2&&b2<=b1-1)
maps[a2-2][b2+1]=-1;
if(a2>=2&&a2<=a1+2&&b2>=1&&b2<=b1+1)
maps[a2-2][b2-1]=-1;
if(a2>=1&&a2<=a1+1&&b2>=2&&b2<=b1+2)
maps[a2-1][b2-2]=-1;
if(a2<=a1-1&&b2>=2&&b2<=b1+2)
maps[a2+1][b2-2]=-1;
if(a2<=a1-2&&b2>=1&&b2<=b1+1)
maps[a2+2][b2-1]=-1;
maps[a2][b2]=-1;
for(int i=1;i<=a1;i++){
for(int j=1;j<=b1;j++){
if(maps[i][j]==-1||(maps[i][j-1]==-1&&maps[i-1][j]==-1)) continue;
else if(maps[i][j-1]==-1){
maps[i][j]=maps[i-1][j];continue;}
else if(maps[i-1][j]==-1){
maps[i][j]=maps[i][j-1];continue;}
maps[i][j]=maps[i][j-1]+maps[i-1][j];
}
}
cout<<maps[a1][b1];
return 0;
}