
# 組み合わせの総数 p=10**9+7 で割ったあまりを求める 
"""n<10**9 ,r<10**7  ,p は素数"""
def comb(n,r):
    if n-r < r:
        r=n-r
    p=1
    q=1
    for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
    return p*pow(q,mod-2,mod)


# 初期入力
N,a,b = (int(x) for x in input().split())
mod =10**9 +7

#N種類の花1本以上の組み合わせ全て(0本選ぶは×なので-1)
all = pow(2,N,mod)-1

#嫌いな本数の組み合わせ
comb_a =comb(N,a)
comb_b =comb(N,b)

ans =(all -comb_a -comb_b)% mod
print(ans) """n<10**9 ,r<10**7  ,p は素数""" def comb(n,r):
    if n-r < r:
        r=n-r
    p=1
    q=1
    for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
    return p*pow(q,mod-2,mod)


# 初期入力 comb if n-r < r:
        r=n-r
     n-r < r n-r n r r r=n-r r n-r n r p=1 p 1 q=1 q 1 for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
     i range(r) range r p *=n-i p n-i n i p %= mod p mod q *=i+1 q i+1 i 1 q %=mod q mod return p*pow(q,mod-2,mod) p*pow(q,mod-2,mod) p pow(q,mod-2,mod) pow q mod-2 mod 2 mod n n r r int(x) for x in input().split() for x in input().split() x input().split() ().split () input split for x in input().split() int(x) int x N,a,b = (int(x) for x in input().split()) N (int(x) for x in input().split()) a b mod =10**9 +7 mod 10**9 +7 10**9 10 9 7 all = pow(2,N,mod)-1 all pow(2,N,mod)-1 pow(2,N,mod) pow 2 N mod 1 comb_a =comb(N,a) comb_a comb(N,a) comb N a comb_b =comb(N,b) comb_b comb(N,b) comb N b ans =(all -comb_a -comb_b)% mod ans (all -comb_a -comb_b)% mod all -comb_a -comb_b all -comb_a all comb_a comb_b mod print(ans) print ans mod =10**9 +7 10**9 +7 mod all = pow(2,N,mod)-1 pow(2,N,mod)-1 all N,a,b = (int(x) for x in input().split()) (int(x) for x in input().split()) N b = (int(x) for x in input().split()) (int(x) for x in input().split()) b comb_b =comb(N,b) comb(N,b) comb_b ans =(all -comb_a -comb_b)% mod (all -comb_a -comb_b)% mod ans def comb(n,r):
    if n-r < r:
        r=n-r
    p=1
    q=1
    for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
    return p*pow(q,mod-2,mod)


# 初期入力 def comb(n,r):
    if n-r < r:
        r=n-r
    p=1
    q=1
    for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
    return p*pow(q,mod-2,mod)


# 初期入力 comb a,b = (int(x) for x in input().split()) (int(x) for x in input().split()) a comb_a =comb(N,a) comb(N,a) comb_a

# 組み合わせの総数 p=10**9+7 で割ったあまりを求める 
"""n<10**9 ,r<10**7  ,p は素数"""
def comb(n,r):
    if n-r < r:
        r=n-r
    p=1
    q=1
    for i in range(r):
        p *=n-i #=n(n-1)・・(n-r+1)
        p %= mod
        q *=i+1 #=1・2・・r =r!
        q %=mod
    return p*pow(q,mod-2,mod)


# 初期入力
N,a,b = (int(x) for x in input().split())
mod =10**9 +7

#N種類の花1本以上の組み合わせ全て(0本選ぶは×なので-1)
all = pow(2,N,mod)-1

#嫌いな本数の組み合わせ
comb_a =comb(N,a)
comb_b =comb(N,b)

ans =(all -comb_a -comb_b)% mod
print(ans)