n, a, b = map(int, input().split())
mod = 10**9+7
ans = pow(2, n, mod)-1

modp = mod                     # 素数であることが前提
max_r = 10 ** 7               # 必要分だけ用意する 10**7が限度
factinv = [1, 1] + [0]*max_r  # factinv[n] = ((n!)^(-1) mod modp)
inv = [0, 1] + [0]*max_r      # factinv 計算用

fact = {}

def cmb(n, r, p):
    assert n < p, 'n is less than modp'
    assert r < max_r, 'n in less than max_n'
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p

for i in range(2, max_r + 1):
    inv[i] = (-inv[modp % i] * (modp // i)) % modp
    factinv[i] = (factinv[i-1] * inv[i]) % modp

ans-=cmb(n, a, mod)
ans-=cmb(n, b, mod)
print(ans%mod) n, a, b = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split a b mod = 10**9+7 mod 10**9+7 10**9 10 9 7 ans = pow(2, n, mod)-1 ans pow(2, n, mod)-1 pow(2, n, mod) pow 2 n mod 1 modp = mod modp mod max_r = 10 ** 7 max_r 10 ** 7 10 7 factinv = [1, 1] + [0]*max_r factinv [1, 1] + [0]*max_r [1, 1] 1 1 [0]*max_r [0] 0 max_r inv = [0, 1] + [0]*max_r inv [0, 1] + [0]*max_r [0, 1] 0 1 [0]*max_r [0] 0 max_r fact = {} fact {} def cmb(n, r, p):
    assert n < p, 'n is less than modp'
    assert r < max_r, 'n in less than max_n'
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p cmb assert n < p, 'n is less than modp' n < p n p 'n is less than modp' assert r < max_r, 'n in less than max_n' r < max_r r max_r 'n in less than max_n' 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 if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p (n, r) in fact (n, r) n r fact return fact[(n, r)] * factinv[r] % p fact[(n, r)] * factinv[r] % p fact[(n, r)] * factinv[r] fact[(n, r)] fact (n, r) n r factinv[r] factinv r p f = 1 f 1 for i in range(n, n-r, -1):
            f = f * i % p
         i range(n, n-r, -1) range n n-r n r -1 f = f * i % p f f * i % p f * i f i p fact[(n, r)] = f fact[(n, r)] fact (n, r) n r f return f * factinv[r] % p f * factinv[r] % p f * factinv[r] f factinv[r] factinv r p n n r r p p for i in range(2, max_r + 1):
    inv[i] = (-inv[modp % i] * (modp // i)) % modp
    factinv[i] = (factinv[i-1] * inv[i]) % modp i range(2, max_r + 1) range 2 max_r + 1 max_r 1 inv[i] = (-inv[modp % i] * (modp // i)) % modp inv[i] inv i (-inv[modp % i] * (modp // i)) % modp -inv[modp % i] * (modp // i) -inv[modp % i] inv[modp % i] inv modp % i modp i modp // i modp i modp factinv[i] = (factinv[i-1] * inv[i]) % modp factinv[i] factinv i (factinv[i-1] * inv[i]) % modp factinv[i-1] * inv[i] factinv[i-1] factinv i-1 i 1 inv[i] inv i modp ans-=cmb(n, a, mod) ans cmb(n, a, mod) cmb n a mod ans-=cmb(n, b, mod) ans cmb(n, b, mod) cmb n b mod print(ans%mod) print ans%mod ans mod b = map(int, input().split()) map(int, input().split()) b inv = [0, 1] + [0]*max_r [0, 1] + [0]*max_r inv mod = 10**9+7 10**9+7 mod factinv = [1, 1] + [0]*max_r [1, 1] + [0]*max_r factinv modp = mod mod modp a, b = map(int, input().split()) map(int, input().split()) a max_r = 10 ** 7 10 ** 7 max_r ans-=cmb(n, b, mod) cmb(n, b, mod) ans n, a, b = map(int, input().split()) map(int, input().split()) n ans = pow(2, n, mod)-1 pow(2, n, mod)-1 ans def cmb(n, r, p):
    assert n < p, 'n is less than modp'
    assert r < max_r, 'n in less than max_n'
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p def cmb(n, r, p):
    assert n < p, 'n is less than modp'
    assert r < max_r, 'n in less than max_n'
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p cmb fact = {} {} fact ans-=cmb(n, a, mod) cmb(n, a, mod) ans
n, a, b = map(int, input().split())
mod = 10**9+7
ans = pow(2, n, mod)-1

modp = mod                     # 素数であることが前提
max_r = 10 ** 7               # 必要分だけ用意する 10**7が限度
factinv = [1, 1] + [0]*max_r  # factinv[n] = ((n!)^(-1) mod modp)
inv = [0, 1] + [0]*max_r      # factinv 計算用

fact = {}

def cmb(n, r, p):
    assert n < p, 'n is less than modp'
    assert r < max_r, 'n in less than max_n'
    if (r < 0) or (n < r):
        return 0
    r = min(r, n - r)
    if (n, r) in fact:
        return fact[(n, r)] * factinv[r] % p
    else:
        f = 1
        for i in range(n, n-r, -1):
            f = f * i % p
        fact[(n, r)] = f
        return f * factinv[r] % p

for i in range(2, max_r + 1):
    inv[i] = (-inv[modp % i] * (modp // i)) % modp
    factinv[i] = (factinv[i-1] * inv[i]) % modp

ans-=cmb(n, a, mod)
ans-=cmb(n, b, mod)
print(ans%mod)
