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

def binom(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)

    res = factinv[r] % p
    for i in range(r):
        res = res * (n - i) % p

    return res % p

factinv = [1, 1]
inv = [0, 1]
 
for i in range(2, min(n, 2*10**5) + 1):
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p)

res = pow(2, n, p)

res -= 1
res = (res - binom(n, a, p)) % p
res = (res - binom(n, b, p)) % p

print(res) 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 p = 10**9+7 p 10**9+7 10**9 10 9 7 def binom(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)

    res = factinv[r] % p
    for i in range(r):
        res = res * (n - i) % p

    return res % p binom if (r < 0) or (n < r):
        return 0
     (r < 0) or (n < r) r < 0 r 0 n < r n r return 0 0 r = min(r, n - r) r min(r, n - r) min r n - r n r res = factinv[r] % p res factinv[r] % p factinv[r] factinv r p for i in range(r):
        res = res * (n - i) % p

     i range(r) range r res = res * (n - i) % p res res * (n - i) % p res * (n - i) res n - i n i p return res % p res % p res p n n r r p p factinv = [1, 1] factinv [1, 1] 1 1 inv = [0, 1] inv [0, 1] 0 1 for i in range(2, min(n, 2*10**5) + 1):
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p) i range(2, min(n, 2*10**5) + 1) range 2 min(n, 2*10**5) + 1 min(n, 2*10**5) min n 2*10**5 2 10**5 10 5 1 inv.append((-inv[p % i] * (p // i)) % p) inv.append inv append (-inv[p % i] * (p // i)) % p -inv[p % i] * (p // i) -inv[p % i] inv[p % i] inv p % i p i p // i p i p factinv.append((factinv[-1] * inv[-1]) % p) factinv.append factinv append (factinv[-1] * inv[-1]) % p factinv[-1] * inv[-1] factinv[-1] factinv -1 inv[-1] inv -1 p res = pow(2, n, p) res pow(2, n, p) pow 2 n p res -= 1 res 1 res = (res - binom(n, a, p)) % p res (res - binom(n, a, p)) % p res - binom(n, a, p) res binom(n, a, p) binom n a p p res = (res - binom(n, b, p)) % p res (res - binom(n, b, p)) % p res - binom(n, b, p) res binom(n, b, p) binom n b p p print(res) print res inv = [0, 1] [0, 1] inv n, a, b = list(map(int, input().split())) list(map(int, input().split())) n res = pow(2, n, p) pow(2, n, p) res def binom(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)

    res = factinv[r] % p
    for i in range(r):
        res = res * (n - i) % p

    return res % p def binom(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)

    res = factinv[r] % p
    for i in range(r):
        res = res * (n - i) % p

    return res % p binom factinv = [1, 1] [1, 1] factinv res -= 1 1 res res = (res - binom(n, a, p)) % p (res - binom(n, a, p)) % p res b = list(map(int, input().split())) list(map(int, input().split())) b a, b = list(map(int, input().split())) list(map(int, input().split())) a p = 10**9+7 10**9+7 p res = (res - binom(n, b, p)) % p (res - binom(n, b, p)) % p res
n, a, b = list(map(int, input().split()))
p = 10**9+7

def binom(n, r, p):
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)

    res = factinv[r] % p
    for i in range(r):
        res = res * (n - i) % p

    return res % p

factinv = [1, 1]
inv = [0, 1]
 
for i in range(2, min(n, 2*10**5) + 1):
    inv.append((-inv[p % i] * (p // i)) % p)
    factinv.append((factinv[-1] * inv[-1]) % p)

res = pow(2, n, p)

res -= 1
res = (res - binom(n, a, p)) % p
res = (res - binom(n, b, p)) % p

print(res)