#include <stdio.h>
int m,n;
int p,q;
int arr[21][21];
int s[21][21];
void conpoint(int p,int q)
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
if ((p-i)*(p-i)+(q-j)*(q-j) == 5)
{
s[i][j] = 0;
}
}
}
return;
}
void judge(int down,int right)
{
for (down=1;down<=n;down++)
{
for (right=1;right<=m;right++)
{
if(right==1 && down==1)
{
arr[down][right]=1;
}
else if (s[down][right])
{
arr[down][right]=arr[down-1][right]+arr[down][right-1];
}
else
{
arr[down][right]=0;
}
}
}
return ;
}
int main (viod)
{
scanf("%d %d %d %d",&n,&m,&p,&q);
n++;m++;p++;q++;
s[p][q]=0;
arr[1][1]=1;
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
s[i][j]=1;
}
}
conpoint(p,q);
int down=1;
int right=1;
int count=0;
judge(down,right);
count=arr[n][m];
printf("%d\n",count);
return 0;
}