#!/usr/bin/env python3



mod = 10**9 + 7



def inv(x):

    return pow(x, mod - 2, mod)



def comb(n, k):

    res = 1

    for i in range(k):

        res = (res * (n - i) * inv(i + 1)) % mod

    return res



H, W, A, B = list(map(int, input().split()))



c1 = comb(H - A - 1 + B, B)

c2 = comb(A - 1 + W - B - 1, W - B - 1)

ans = 0

for i in range(B + 1, W + 1):

    ans = (ans + c1 * c2) % mod

    c1 = (c1 * (H - A - 1 + i) * inv(i)) % mod

    c2 = (c2 * (W - i) * inv(A - 1 + W - i)) % mod

print(ans)

#!/usr/bin/env python3



mod = 10**9 + 7

H, W, A, B = list(map(int, input().split()))



fct = [1]

inv = [1]

for i in range(1, H + W - 1):

    fct.append((fct[-1] * i) % mod)

    inv.append(pow(fct[i], mod - 2, mod))



def comb(n, k):

    return (fct[n] * inv[n - k] * inv[k]) % mod



ans = 0

for i in range(B, W):

    c1 = comb(H - A - 1 + i, i)

    c2 = comb(A - 1 + W - i - 1, W - i - 1)

    ans = (ans + c1 * c2) % mod

print(ans)

#!/usr/bin/env python3
mod = 10**9 + 7


def inv(x):
    return pow(x, mod - 2, mod)


def comb(n, k):
    res = 1
    for i in range(k):
        res = (res * (n - i) * inv(i + 1)) % mod
    return res


H, W, A, B = list(map(int, input().split()))
c1 = comb(H - A - 1 + B, B)
c2 = comb(A - 1 + W - B - 1, W - B - 1)
ans = 0
for i in range(B + 1, W + 1):
    ans = (ans + c1 * c2) % mod
    c1 = (c1 * (H - A - 1 + i) * inv(i)) % mod
    c2 = (c2 * (W - i) * inv(A - 1 + W - i)) % mod
print(ans)

#!/usr/bin/env python3
mod = 10**9 + 7
H, W, A, B = list(map(int, input().split()))
fct = [1]
inv = [1]
for i in range(1, H + W - 1):
    fct.append((fct[-1] * i) % mod)
    inv.append(pow(fct[i], mod - 2, mod))


def comb(n, k):
    return (fct[n] * inv[n - k] * inv[k]) % mod


ans = 0
for i in range(B, W):
    c1 = comb(H - A - 1 + i, i)
    c2 = comb(A - 1 + W - i - 1, W - i - 1)
    ans = (ans + c1 * c2) % mod
print(ans)

- - -def inv(x): -    return pow(x, mod - 2, mod) +H, W, A, B = list(map(int, input().split())) +fct = [1] +inv = [1] +for i in range(1, H + W - 1): +    fct.append((fct[-1] * i) % mod) +    inv.append(pow(fct[i], mod - 2, mod)) -    res = 1 -    for i in range(k): -        res = (res * (n - i) * inv(i + 1)) % mod -    return res +    return (fct[n] * inv[n - k] * inv[k]) % mod -H, W, A, B = list(map(int, input().split())) -c1 = comb(H - A - 1 + B, B) -c2 = comb(A - 1 + W - B - 1, W - B - 1) -for i in range(B + 1, W + 1): +for i in range(B, W): +    c1 = comb(H - A - 1 + i, i) +    c2 = comb(A - 1 + W - i - 1, W - i - 1) -    c1 = (c1 * (H - A - 1 + i) * inv(i)) % mod -    c2 = (c2 * (W - i) * inv(A - 1 + W - i)) % mod