注意数据太大要用long long
#include<cstdlib>
#include<iostream>
using namespace std;
long long chess[22][22];
bool judge[22][22];
int main(){
int n,m,N,M;
cin >> n >> m >> N >> M;
judge[N+1][M+1] = true;
for(int i=0;i<n;i++){
chess[i][0] = 0;
}
for(int i=0;i<m;i++){
chess[0][i] = 0;
}
if( M - 2 + 1 > 0 ){
if(N + 1 + 1 <= n+1){
judge[N+2][M-1] = true;
}
if(N-1+1 >= 1){
judge[N][M-1] = true;
}
}
if(M - 1 + 1 > 0){
if(N - 2 + 1 >= 1){
judge[N - 1][M] = true;
}
if(N+2+1 <= n+1){
judge[N+3][M] = true;
}
}
if(M + 1 + 1 <= m+1){
if(N - 2 + 1 >= 1){
judge[N - 1][M+2] = true;
}
if(N+2+1 <= n+1){
judge[N+3][M+2] = true;
}
}
if(M + 2 + 1 <= m+1 ){
if(N + 1 + 1 <= n+1){
judge[N+2][M+3] = true;
}
if(N-1+1 >= 1){
judge[N][M+3] = true;
}
}
for(int i=1;i<=n+1;i++){
for(int j=1;j<=m+1;j++){
if(i==1 && j==1){
chess[i][j] = 1;
}
else
if(!judge[i][j]){
chess[i][j] = chess[i-1][j] + chess[i][j-1];
}
else{
chess[i][j] = 0;
}
}
}
/*for(int i=0;i<=n+1;i++){
for(int j=0;j<=m+1;j++){
cout << chess[i][j] << " ";
}
cout << endl;
}*/
cout << chess[n+1][m+1];
}