#include<bits/stdc++.h>
using namespace std;
bool isdight(char s){
if(s>='0'&&s<='9') return 1;
return 0;
}
int read(){
int f=1;
int x=0;
char s=getchar();
while(!isdight(s)){
if(s=='-') f=-1;
s=getchar();
}
while(isdight(s)){
x=x*10+s-'0';
s=getchar();
}
return f*x;
}
void write(int x){
if(x<0) putchar('-'),x=-x;
if(x>9) write(x/10);
putchar(x%10+'0');
}
int dx[]={-2,-2,-1,-1,1,1,2,2};
int dy[]={1,-1,2,-2,2,-2,1,-1};
int mp[25][25],dp[225][25];
int main(){
int n=read(),m=read();
int x=read(),y=read();
for(int i=0;i<8;i++){
int nx=dx[i]+x,ny=y+dy[i];
if(nx<0||ny<0||nx>n||ny>m) continue;
mp[nx][ny]=-1;
}
for(int i=0;i<=n;i++) dp[i][0]=1;
for(int i=0;i<=m;i++) dp[0][m]=1;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++){
if(mp[i][j]==-1) continue;
if(mp[i-1][j]!=-1) dp[i][j]+=dp[i-1][j];
if(mp[i][j-1]!=-1) dp[i][j]+=dp[i][j-1];
}
write(dp[n][m]);
return 0;
}