PROGRAM ATCODER

implicit none
integer(8) :: h, w, a, b
integer(8) :: m, s, sum, c1, c2
integer(8) :: i, j

read(*,*) h, w, a, b

sum = 0

do i = 0, h-a-1 !(b+1,i)に到達するまでに下に移動する回数
	if (i == 0)then
    	c1 = 1
    else if(i == 1)then
    	c1 = b
    else
    	m = i
        s = b+i-1
    	do j = i-1, 1, -1
    		m = m*j
        	s = s*(b+j-1)
    	end do
        if (s == 0)then
        	s = 1
        end if
		c1 = s/m
    end if
    m = h-i-1
    s = w+h-b-i-2
    do j = h-i-2, 1, -1
    	m = m*j
        s = s*(w-b+j-1)
    end do
    if (m == 0)then
        m = 1
    end if
    if (s == 0)then
        s = 1
    end if
    c2 = s/m
    sum = sum + c1*c2
end do

write(*,'(i0)') mod(int(sum),10**9+7)

END PROGRAM ATCODER