/*
附第3个点样例:
输入: 20 20 4 0
输出: 56477364570
*/
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll x,y,hx,hy;
ll dp[22][22]={};
bool h[22][22]={};
const int dx[8]={1,2,-2, 1,-1,-2,-1, 2},
dy[8]={2,1, 1,-2,-2,-1, 2,-1};
void print() // 调试用
{
for(int i=1;i<=x;i++)
{
for(int j=1;j<=y;j++)
{
cout << dp[i][j] << " ";
}
cout << endl;
}
}
int main()
{
scanf("%d %d %d %d",&x,&y,&hx,&hy);
x++,y++;
// 设置马的控制点
h[hx+1][hy+1]=1;
for(int i=0;i<8;i++)
h[hx+dx[i]+1][hy+dy[i]+1]=1;
// DP
for(int i=1;i<=x;i++)
{
for(int j=1;j<=y;j++)
{
if(i==1 && j==1)
{
dp[i][j]=1;
continue;
}
if(h[i][j])
continue;
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
//print();
cout << dp[x][y] << endl;
return 0;
}