import java.util.Scanner

val mod = 1000000007L
fun main(args: Array<String>) {
	val scanner = Scanner(System.`in`)
	val h = scanner.nextInt()
	val w = scanner.nextInt()
	val a = scanner.nextInt()
	val b = scanner.nextInt()
	val max = Math.max(h-a+b-1, h+w-b-1)

	val arr = Array(max+1){Pair(1L,1L)}
	for (i in 2..max){
		val fct = (arr[i-1].first * i)%mod
		arr[i] = Pair(fct, powM(fct, mod-2L))
	}

	val fs = LongArray(h-a){ ((arr[it+b-1].first*arr[it].second)%mod * arr[b-1].second)%mod }
	var ans = 0L
	fs.forEachIndexed { i, l ->
		ans = (((arr[h-i+w-b-2].first*arr[h-i-1].second)%mod * arr[w-b-1].second)%mod * l + ans)%mod
	}
	println(ans)
}

fun powM(b: Long, e: Long): Long{
	var ans = 1L
	var mul = b
	var e = e
	while (e!=0L){
		if (e%2L==1L) ans = (ans*mul)%mod
		mul = (mul*mul)%mod
		e /= 2L
	}
	return ans
}