#include<bits/stdc++.h>
#define MAXN (int)(2e2+1e1)
using namespace std;
int n,m,x,y;
long long dp[MAXN][MAXN];
bool iskz(int x,int y)
{
if((x==m+2 && y==n+1) ||
(x==m+1 && y==n+2) ||
(x==m-1 && y==n+2) ||
(x==m-2 && y==n+1) ||
(x==m+1 && y==n-2) ||
(x==m+2 && y==n-1) ||
(x==m-2 && y==n-1) ||
(x==m-1 && y==n-2) ||
(x==m && y==n )) return true;
else return false;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
cin>>x>>y>>n>>m;
dp[0][0]=0;
for(int i=1;i<=x;i++) if(!iskz(i,0)) dp[i][0]=1;
for(int i=1;i<=y;i++) if(!iskz(0,i)) dp[0][i]=1;
for(int i=1;i<=x;i++){
for(int j=1;j<=y;j++){
if(!iskz(i,j)) dp[i][j]=dp[i][j-1]+dp[i-1][j];
else dp[i][j]=0;
}
}
cout<<dp[x][y];
return 0;
}