#include<iostream>
#include<vector>
using namespace std;
int n,m,a,b;
long long f[1000][1000]={0};
int t[9][3];
void work(int n,int m)
{
for(int i=0;i<=20;i++)
{
f[i][0]=1;
f[0][i]=1;
}
for(int i=0;i<9;i++)
{
if(t[i][0]>=0&&t[i][1]>=0)
f[t[i][0]][t[i][1]]=0;
}
for(int i=0;i<=n;i++)
{
for(int j=0;j<=m;j++)
{
if(i==0||j==0)
continue;
else
{
int flag=1;
for(int k=0;k<9;k++)
{
if(i==t[k][0]&&j==t[k][1])
{
flag=0;
f[i][j]=0;
break;
}
}
if(flag)
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
}
printf("%lld",f[n][m]);
}
int main()
{
scanf("%d %d %d %d",&n,&m,&a,&b);
int ac=0;
t[0][0]=a;t[0][1]=b;t[1][0]=a+2;t[1][1]=b+1;
t[2][0]=a+1;t[2][1]=b+2;t[3][0]=a-1;t[3][1]=b+2;
t[4][0]=a-2;t[4][1]=b+1;t[5][0]=a-2;t[5][1]=b-1;
t[6][0]=a-1;t[6][1]=b-2;t[7][0]=a+1;t[7][1]=b-2;
t[8][0]=a+2;t[8][1]=b-1;
work(n,m);
return 0;
}