#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
void Code_By_Mohamed_Khaled() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
}
ll mod =1e9+7;
ll mul(ll a, ll b) { return ((b % mod) * (a % mod)) % mod; }
ll add(ll a, ll b) { return ((b % mod) + (a % mod)) % mod; }
ll fast_power(ll base,ll exp) {
ll result = 1;
while(exp > 0) {
if(exp & 1)
result=result*base%mod;
base=base*base%mod;
exp >>= 1;
}
return result;
}
vector<ll>fact(2e6+5,0),inv_fact(2e6+5);
void precompute() {
fact[0]=fact[1]=1;ll N=2e6;
inv_fact[0]=1;
for (ll i=2;i<=2e6;i++) {
fact[i]=mul(fact[i-1],i);
}
inv_fact[N]=fast_power(fact[N],mod-2);
for (ll i=2e6-1;i>0;i--) {
inv_fact[i]=mul(inv_fact[i+1],i+1);
}
}
ll comb(int n, int r) {
if (r > n || r < 0) return 0;
return mul(mul(fact[n], inv_fact[r]), inv_fact[n - r]);
}
int main() {
Code_By_Mohamed_Khaled();
precompute();
ll h,w,a,b;cin>>h>>w>>a>>b;
ll ans=0;
for (int i = 0; i < w-b; i++){
ll ways1=comb((h-a-1)+(b+i),h-a-1);
ll ways2=comb((a-1)+(w-b-1-i),a-1);
ans=add(ans,mul(ways1,ways2));
}
cout<<ans<<"\n";
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp1c2luZyBuYW1lc3BhY2Ugc3RkOwp2b2lkIENvZGVfQnlfTW9oYW1lZF9LaGFsZWQoKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKICAgIGNpbi50aWUobnVsbHB0cik7CiAgICBjb3V0LnRpZShudWxscHRyKTsKI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgIGZyZW9wZW4oImlucHV0LnR4dCIsInIiLHN0ZGluKTsKICAgIGZyZW9wZW4oIm91dHB1dC50eHQiLCJ3IixzdGRvdXQpOwojZW5kaWYKfQpsbCBtb2QgPTFlOSs3OwpsbCBtdWwobGwgYSwgbGwgYikgeyByZXR1cm4gKChiICUgbW9kKSAqIChhICUgbW9kKSkgJSBtb2Q7IH0KbGwgYWRkKGxsIGEsIGxsIGIpIHsgcmV0dXJuICgoYiAlIG1vZCkgKyAoYSAlIG1vZCkpICUgbW9kOyB9CmxsIGZhc3RfcG93ZXIobGwgYmFzZSxsbCBleHApIHsKICAgIGxsIHJlc3VsdCA9IDE7CiAgICB3aGlsZShleHAgPiAwKSB7CiAgICAgICAgaWYoZXhwICYgMSkKICAgICAgICAgICAgcmVzdWx0PXJlc3VsdCpiYXNlJW1vZDsKICAgICAgICBiYXNlPWJhc2UqYmFzZSVtb2Q7CiAgICAgICAgZXhwID4+PSAxOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQp2ZWN0b3I8bGw+ZmFjdCgyZTYrNSwwKSxpbnZfZmFjdCgyZTYrNSk7CnZvaWQgcHJlY29tcHV0ZSgpIHsKICAgIGZhY3RbMF09ZmFjdFsxXT0xO2xsIE49MmU2OwogICAgaW52X2ZhY3RbMF09MTsKICAgIGZvciAobGwgaT0yO2k8PTJlNjtpKyspIHsKICAgICAgICBmYWN0W2ldPW11bChmYWN0W2ktMV0saSk7CiAgICB9CiAgICBpbnZfZmFjdFtOXT1mYXN0X3Bvd2VyKGZhY3RbTl0sbW9kLTIpOwogICAgZm9yIChsbCBpPTJlNi0xO2k+MDtpLS0pIHsKICAgICAgICBpbnZfZmFjdFtpXT1tdWwoaW52X2ZhY3RbaSsxXSxpKzEpOwogICAgfQp9CmxsIGNvbWIoaW50IG4sIGludCByKSB7CiAgICBpZiAociA+IG4gfHwgciA8IDApIHJldHVybiAwOwogICAgcmV0dXJuIG11bChtdWwoZmFjdFtuXSwgaW52X2ZhY3Rbcl0pLCBpbnZfZmFjdFtuIC0gcl0pOwp9CmludCBtYWluKCkgewogICAgQ29kZV9CeV9Nb2hhbWVkX0toYWxlZCgpOwogICAgcHJlY29tcHV0ZSgpOwogICAgbGwgaCx3LGEsYjtjaW4+Pmg+Pnc+PmE+PmI7CiAgICBsbCBhbnM9MDsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdy1iOyBpKyspewogICAgICAgIGxsIHdheXMxPWNvbWIoKGgtYS0xKSsoYitpKSxoLWEtMSk7CiAgICAgICAgbGwgd2F5czI9Y29tYigoYS0xKSsody1iLTEtaSksYS0xKTsKICAgICAgICBhbnM9YWRkKGFucyxtdWwod2F5czEsd2F5czIpKTsKICAgIH0KICAgIGNvdXQ8PGFuczw8IlxuIjsKICAgIHJldHVybiAwOwp9