//
//  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 inv = [Int]()
inv.append(1)
inv.append(1)
for i in 2 ... 1000000 + 7{
    inv.append((MOD - MOD / i) * inv[MOD % i] % 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[fact(n: k)] % MOD * inv[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)
