program main
    implicit none
    integer(8):: n, a, b, ans=0
    integer(8):: i,j,k
    integer(8),parameter:: md=1000000007
    integer(8),allocatable:: f(:), inv_f(:)

    read*, n, a, b

    allocate(f(0:n), inv_f(0:n))

    f(:)=0; inv_f(:)=0
    f(0) = 1; inv_f(0) = 1
    ! print*, 1
    do i=1,n
        f(i) = mod(f(i-1)*i,md)
        inv_f(i) = inverse(f(i), md)        
    end do
    ! print*, 2
    do i=1,n
        if (i == a .or. i ==b) cycle
        ! print*, n, i, comb(n,i)
        ans = mod(ans + comb(n,i),md)
    end do
    print*, ans

contains
function comb(a,b) result(ret)
    integer(8):: a, b, ret
    ret = mod(mod(f(a)*inv_f(b),md)*inv_f(a-b),md)
end function



function inverse(x, md) result(inv)
    integer(8),value:: x
    integer(8):: md, inv
    integer(8):: p
    inv=1
    p = md-2

    do while(p > 0)
        if (mod(p,2) == 1) inv = mod(inv*x, md)
        p = rshift(p,1)
        x=mod(x*x,md)
    end do
    
end function


end program
