n, a, b = list(map(int, input().split(' ')))

# 二項係数 mod [検索]
mmm = 1000000000 + 7
fac = []
inv = []
inv_fac = []
def init(n):
    fac.append(1)
    fac.append(1)
    inv.append(0)
    inv.append(1)
    inv_fac.append(1)
    inv_fac.append(1)
    for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm)

def choice(a, b):
    if a < b:
        return 0
    v = 1
    for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
    return v * inv_fac[b]

init(int(2e5) + 1)


ans = pow(2, n, mmm) - 1  # v, e, mod
bunshi = 1
for i in range(a):
    bunshi = (bunshi * (n-i)) % mmm
ans -= choice(n, a)
ans -= choice(n, b)
print(ans % mmm)

'''
4, 1, 3 => 4c2 + 4c4 -> 6+1 = 7
4 + 6 + 4 + 1 - 4c1 - 4c2 
1        1
11       2
121      4
1331     8
14641   16, 0が無いので-1, 大きい combination -> 二項係数 mod [検索]
''' n, a, b = list(map(int, input().split(' '))) n list(map(int, input().split(' '))) list map(int, input().split(' ')) map int input().split(' ') ().split () input split ' ' a b mmm = 1000000000 + 7 mmm 1000000000 + 7 1000000000 7 fac = [] fac [] inv = [] inv [] inv_fac = [] inv_fac [] def init(n):
    fac.append(1)
    fac.append(1)
    inv.append(0)
    inv.append(1)
    inv_fac.append(1)
    inv_fac.append(1)
    for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm) init fac.append(1) fac.append fac append 1 fac.append(1) fac.append fac append 1 inv.append(0) inv.append inv append 0 inv.append(1) inv.append inv append 1 inv_fac.append(1) inv_fac.append inv_fac append 1 inv_fac.append(1) inv_fac.append inv_fac append 1 for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm) i range(2, n) range 2 n fac.append(fac[-1] * i % mmm) fac.append fac append fac[-1] * i % mmm fac[-1] * i fac[-1] fac -1 i mmm inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm) inv.append inv append mmm - inv[mmm%i] * (mmm // i) % mmm mmm inv[mmm%i] * (mmm // i) % mmm inv[mmm%i] * (mmm // i) inv[mmm%i] inv mmm%i mmm i mmm // i mmm i mmm inv_fac.append(inv_fac[-1] * inv[-1] % mmm) inv_fac.append inv_fac append inv_fac[-1] * inv[-1] % mmm inv_fac[-1] * inv[-1] inv_fac[-1] inv_fac -1 inv[-1] inv -1 mmm n n def choice(a, b):
    if a < b:
        return 0
    v = 1
    for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
    return v * inv_fac[b] choice if a < b:
        return 0
     a < b a b return 0 0 v = 1 v 1 for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
     i range(b) range b v = (v * (a-i)) % mmm v (v * (a-i)) % mmm v * (a-i) v a-i a i mmm return v * inv_fac[b] v * inv_fac[b] v inv_fac[b] inv_fac b a a b b init(int(2e5) + 1) init int(2e5) + 1 int(2e5) int 2e5 1 ans = pow(2, n, mmm) - 1 ans pow(2, n, mmm) - 1 pow(2, n, mmm) pow 2 n mmm 1 bunshi = 1 bunshi 1 for i in range(a):
    bunshi = (bunshi * (n-i)) % mmm i range(a) range a bunshi = (bunshi * (n-i)) % mmm bunshi (bunshi * (n-i)) % mmm bunshi * (n-i) bunshi n-i n i mmm ans -= choice(n, a) ans choice(n, a) choice n a ans -= choice(n, b) ans choice(n, b) choice n b print(ans % mmm) print ans % mmm ans mmm '''
4, 1, 3 => 4c2 + 4c4 -> 6+1 = 7
4 + 6 + 4 + 1 - 4c1 - 4c2 
1        1
11       2
121      4
1331     8
14641   16, 0が無いので-1, 大きい combination -> 二項係数 mod [検索]
''' a, b = list(map(int, input().split(' '))) list(map(int, input().split(' '))) a mmm = 1000000000 + 7 1000000000 + 7 mmm n, a, b = list(map(int, input().split(' '))) list(map(int, input().split(' '))) n b = list(map(int, input().split(' '))) list(map(int, input().split(' '))) b ans -= choice(n, a) choice(n, a) ans ans -= choice(n, b) choice(n, b) ans bunshi = (bunshi * (n-i)) % mmm (bunshi * (n-i)) % mmm bunshi fac = [] [] fac inv = [] [] inv ans = pow(2, n, mmm) - 1 pow(2, n, mmm) - 1 ans bunshi = 1 1 bunshi inv_fac = [] [] inv_fac def init(n):
    fac.append(1)
    fac.append(1)
    inv.append(0)
    inv.append(1)
    inv_fac.append(1)
    inv_fac.append(1)
    for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm) def init(n):
    fac.append(1)
    fac.append(1)
    inv.append(0)
    inv.append(1)
    inv_fac.append(1)
    inv_fac.append(1)
    for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm) init def choice(a, b):
    if a < b:
        return 0
    v = 1
    for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
    return v * inv_fac[b] def choice(a, b):
    if a < b:
        return 0
    v = 1
    for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
    return v * inv_fac[b] choice
n, a, b = list(map(int, input().split(' ')))

# 二項係数 mod [検索]
mmm = 1000000000 + 7
fac = []
inv = []
inv_fac = []
def init(n):
    fac.append(1)
    fac.append(1)
    inv.append(0)
    inv.append(1)
    inv_fac.append(1)
    inv_fac.append(1)
    for i in range(2, n):
        fac.append(fac[-1] * i % mmm)
        inv.append(mmm - inv[mmm%i] * (mmm // i) % mmm)
        inv_fac.append(inv_fac[-1] * inv[-1] % mmm)

def choice(a, b):
    if a < b:
        return 0
    v = 1
    for i in range(b):
        v = (v * (a-i)) % mmm  # 偶然通っていたけどここはnではなくa (eの途中で気づいた)
    return v * inv_fac[b]

init(int(2e5) + 1)


ans = pow(2, n, mmm) - 1  # v, e, mod
bunshi = 1
for i in range(a):
    bunshi = (bunshi * (n-i)) % mmm
ans -= choice(n, a)
ans -= choice(n, b)
print(ans % mmm)

'''
4, 1, 3 => 4c2 + 4c4 -> 6+1 = 7
4 + 6 + 4 + 1 - 4c1 - 4c2 
1        1
11       2
121      4
1331     8
14641   16, 0が無いので-1, 大きい combination -> 二項係数 mod [検索]
'''
