from functools import reduce
def mycmb(n,r,p):
    r = min(r,n-r)
    if r == 0:
        return 1
    over = reduce(lambda x,y:x*y%p,range(n,n-r,-1))
    under = reduce(lambda x,y:x*y%p,range(1,r+1))
    return (over * pow(under,p-2,p))%p
    

n,a,b = map(int,input().split())
p = 10**9 + 7

syu = pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p)
print(syu%p) from functools import reduce def mycmb(n,r,p):
    r = min(r,n-r)
    if r == 0:
        return 1
    over = reduce(lambda x,y:x*y%p,range(n,n-r,-1))
    under = reduce(lambda x,y:x*y%p,range(1,r+1))
    return (over * pow(under,p-2,p))%p
     mycmb r = min(r,n-r) r min(r,n-r) min r n-r n r if r == 0:
        return 1
     r == 0 r 0 return 1 1 over = reduce(lambda x,y:x*y%p,range(n,n-r,-1)) over reduce(lambda x,y:x*y%p,range(n,n-r,-1)) reduce lambda x,y:x*y%p x*y%p x*y x y p x y range(n,n-r,-1) range n n-r n r -1 under = reduce(lambda x,y:x*y%p,range(1,r+1)) under reduce(lambda x,y:x*y%p,range(1,r+1)) reduce lambda x,y:x*y%p x*y%p x*y x y p x y range(1,r+1) range 1 r+1 r 1 return (over * pow(under,p-2,p))%p (over * pow(under,p-2,p))%p over * pow(under,p-2,p) over pow(under,p-2,p) pow under p-2 p 2 p p n n r r p p n,a,b = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split a b p = 10**9 + 7 p 10**9 + 7 10**9 10 9 7 syu = pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p) syu pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p) pow(2,n,p) - 1 - mycmb(n,a,p) pow(2,n,p) - 1 pow(2,n,p) pow 2 n p 1 mycmb(n,a,p) mycmb n a p mycmb(n,b,p) mycmb n b p print(syu%p) print syu%p syu p def mycmb(n,r,p):
    r = min(r,n-r)
    if r == 0:
        return 1
    over = reduce(lambda x,y:x*y%p,range(n,n-r,-1))
    under = reduce(lambda x,y:x*y%p,range(1,r+1))
    return (over * pow(under,p-2,p))%p
     def mycmb(n,r,p):
    r = min(r,n-r)
    if r == 0:
        return 1
    over = reduce(lambda x,y:x*y%p,range(n,n-r,-1))
    under = reduce(lambda x,y:x*y%p,range(1,r+1))
    return (over * pow(under,p-2,p))%p
     mycmb p = 10**9 + 7 10**9 + 7 p syu = pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p) pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p) syu b = map(int,input().split()) map(int,input().split()) b n,a,b = map(int,input().split()) map(int,input().split()) n a,b = map(int,input().split()) map(int,input().split()) a
from functools import reduce
def mycmb(n,r,p):
    r = min(r,n-r)
    if r == 0:
        return 1
    over = reduce(lambda x,y:x*y%p,range(n,n-r,-1))
    under = reduce(lambda x,y:x*y%p,range(1,r+1))
    return (over * pow(under,p-2,p))%p
    

n,a,b = map(int,input().split())
p = 10**9 + 7

syu = pow(2,n,p) - 1 - mycmb(n,a,p) - mycmb(n,b,p)
print(syu%p)