#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
unsigned long long a,b,n,m,q[21][21]={0};
bool ma[21][21]={0};
scanf("%llu%llu%llu%llu",&n,&m,&a,&b);
//边界
for(unsigned long long i=0;i<=n;i++) q[i][0]=1;
for(unsigned long long i=0;i<=m;i++) q[0][i]=1;
//马的控制点
ma[a][b]=1; q[a][b]=0;
ma[a+1][b+2]=1; q[a+1][b+2]=0;
ma[a-1][b+2]=1; q[a-1][b+2]=0;
ma[a+2][b+1]=1; q[a+2][b+1]=0;
ma[a-2][b+1]=1; q[a-2][b+1]=0;
ma[a+1][b-2]=1; q[a+1][b-2]=0;
ma[a-1][b-2]=1; q[a-1][b-2]=0;
ma[a+2][b-1]=1; q[a+2][b-1]=0;
ma[a-2][b-1]=1; q[a-2][b-1]=0;
//递推
for(unsigned long long i=1;i<=n;i++)
for(unsigned long long j=1;j<=m;j++)
if(ma[i][j]==0) q[i][j]=q[i-1][j]+q[i][j-1];
printf("%llu",q[n][m]);
return 0;
}