#include <iostream>
#include <cstdio>
using namespace std;
int V[220][220],dp[220][220];
int dfs(int x,int y){
if(x==0&y==0) return 1;
if(V[x][y]==1||x<0||y<0) return 0;
dp[x][y]=max(dp[x][y],dfs(x-1,y)+dfs(x,y-1));
return dp[x][y];
}
int main(){
int n,m,a,b;
cin>>n>>m>>a>>b;
if(a-1>=0&&b-2>=0) V[a-1][b-2]=1;
if(a-1>=0&&b+2>=0) V[a-1][b+2]=1;
if(a+1>=0&&b-2>=0) V[a+1][b-2]=1;
if(a+1>=0&&b+2>=0) V[a+1][b+2]=1;
if(a-2>=0&&b-1>=0) V[a-2][b-1]=1;
if(a-2>=0&&b+1>=0) V[a-2][b+1]=1;
if(a+2>=0&&b-1>=0) V[a+2][b-1]=1;
if(a+2>=0&&b+1>=0) V[a+2][b+1]=1;
int ans=dfs(n,m);
cout<<ans;
return 0;
}