#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN 24
long long a[MAXN][MAXN]={0};
int b[MAXN][MAXN]={0};
int trans[9][2]{{0,0},{1,2},{1,-2},{2,1},{2,-1},{-1,2},{-1,-2},{-2,1},{-2,-1}};
int i,j,x,y,hx,hy,sign_x,sign_y;
int main()
{
cin>>x>>y>>hx>>hy;
for(i=0;i<9;i++)
{
if((hx+trans[i][0])>=0&&(hx+trans[i][0])<=x)
sign_x=hx+trans[i][0];
if(hy+trans[i][1]>=0&&(hy+trans[i][1])<=y)
sign_y=hy+trans[i][1];
b[sign_x][sign_y]=1;
}
a[0][0]=1-b[0][0];
for(i=0;i<=x;i++)
for(j=0;j<=y;j++)
{
if(b[i][j])
continue;
if(i)a[i][j]+=a[i-1][j];
if(j)a[i][j]+=a[i][j-1];
}
cout<<a[x][y];
return 0;
}