#include <bits/stdc++.h>
using namespace std;
using ll=long long;
int n,m,hn,hm,dx[7]={1,0},dy[7]={0,1};
ll ans;
bool flag[25][25];
void dfs (int x,int y)
{
if (x==n&&y==m)
{
ans++;
return;
}
else
{
for (int i=0;i<2;i++)
{
int tx=x+dx[i],ty=y+dy[i];
if (tx>=0&&tx<=n&&ty>=0&&ty<=m&&!flag[tx][ty])
{
dfs (tx,ty);
}
}
}
}
int main()
{
scanf ("%d%d%d%d",&n,&m,&hn,&hm);
flag[hn][hm]=true;
if (hn+1<=n&&hm+2<=m)
{
flag[hn+1][hm+2]=true;
}
if (hn+2<=n&&hm+1<=m)
{
flag[hn+2][hm+1]=true;
}
if (hn+2<=n&&hm-1>=0)
{
flag[hn+2][hm-1]=true;
}
if (hn+1<=n&&hm-2>=0)
{
flag[hn+1][hm-2]=true;
}
if (hn-1>=0&&hm-2>=0)
{
flag[hn-1][hm-2]=true;
}
if (hn-2>=0&&hm-1>=0)
{
flag[hn-2][hm-1]=true;
}
if (hn-2>=0&&hm+1<=m)
{
flag[hn-2][hm+1]=true;
}
if (hn-1>=0&&hm+2<=m)
{
flag[hn-1][hm+2]=true;
}
dfs (0,0);
printf ("%d",ans);
return 0;
}