//
//  main.swift
//  Atcoder
//
//  Created by Louis Joe Shen on 2020/7/17.
//  Copyright © 2020 Louise Joe Shen. All rights reserved.
//

import Foundation

var input = readLine()!.split(separator: " ")

var H = Int(input[0])!
var W = Int(input[1])!
var A = Int(input[2])!
var B = Int(input[3])!

var MOD : Int = 1000000000 + 7
var fac = [Int]()
func exgcd(a : Int,b : Int) -> [Int]{
    var ans = [0,0,0]
    
    if b == 0{
        ans[0] = a
        ans[1] = 1
        ans[2] = 0
        return ans
    }
    let delta = exgcd(a: b, b: a % b)
    
    ans[0] = delta[0]
    ans[1] = delta[2]
    ans[2] = delta[1] - (a / b) * delta[2]
    
    return ans
}
   
func inv(a : Int) -> Int{
    let ans = exgcd(a: a, b: MOD)
    
    return (ans[1] % MOD + MOD) % MOD
}

func C(r : Int,k : Int) -> Int{
    return fac[r] % MOD * inv(a: fac[k]) % MOD * inv(a: fac[r - k]) % MOD
}

fac.append(1)
for i in 1 ... 200000 + 7{
    fac.append(i * fac[i - 1] % MOD)
}

var n = H - A
var ans = 0
for i in 1 ... n{
    ans += ((C(r: B + i - 2, k: i - 1) % MOD) * (C(r: W + H - B - i - 1, k: H - i) % MOD)) % MOD
    ans %= MOD
}

print(ans)
