//
//  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

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 fact(n : Int) -> Int{
    var delta = 1
    let end = n % MOD
    if end >= 1{
        for i in 1 ... end{
            delta %= MOD
            delta *= i
        }
    }
    
    var alpha = -1
    if n / MOD % 2 == 0 {
        alpha = 1
    }
    
    return alpha * delta % MOD
}

func C(r : Int,k : Int) -> Int{
    return fact(n: r) % MOD * inv(a: fact(n: k)) % MOD * inv(a: fact(n: r - k)) % 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)
