#include<bits/stdc++.h>
using namespace std;
const int N = 25;
long long path[N][N];
long long solve(int m,int n)
{
if(path[m][n] == 0||(m==0&&n==0))
return 0;
else if(m == 0 || n == 0)
return 1;
else
return solve(m-1,n) + solve(m,n-1);
}
int main()
{
int m,n,p,q;
cin>>m>>n>>p>>q;
for(int i = 0;i <= m;i++)//先把所有位置置为1,表示能走到
{
for(int j = 0;j <= n;j++)
{
path[i][j] = 1;
}
}
//以下是把马能走到的位置置0
if(p-2>=0&&q-1>=0)
path[p-2][q-1] = 0;
if(p-2>=0&&q+1<=n)
path[p-2][q+1] = 0;
if(p+2<=m&&q-1>=0)
path[p+2][q-1] = 0;
if(p+2<=m&&q+1<=n)
path[p+2][q+1] = 0;
if(p-1>=0&&q-2>=0)
path[p-1][q-2] = 0;
if(p-1>=0&&q+2<=n)
path[p-1][q+2] = 0;
if(p+1<=m&&q-2>=0)
path[p+1][q-2] = 0;
if(p+1<=m&&q+2<=n)
path[p+1][q+2] = 0;
path[p][q] = 0;
cout<<solve(m,n);
return 0;
}