import sys
input = sys.stdin.buffer.readline


def combination(k, r, MOD):
    """kCrを求める"""
    if k < r:
        return 0
    r = min(r, k - r)
    numer, denom = 1, 1
    for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
    return numer * pow(denom, MOD - 2, MOD) % MOD


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


all_ptn = pow(2, n, MOD)
a_ptn = combination(n, a, MOD)
b_ptn = combination(n, b, MOD)

ans = (all_ptn - (a_ptn + b_ptn) - 1) % MOD
print(ans) import sys sys input = sys.stdin.buffer.readline input sys.stdin.buffer.readline sys.stdin.buffer sys.stdin sys stdin buffer readline def combination(k, r, MOD):
    """kCrを求める"""
    if k < r:
        return 0
    r = min(r, k - r)
    numer, denom = 1, 1
    for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
    return numer * pow(denom, MOD - 2, MOD) % MOD combination """kCrを求める""" if k < r:
        return 0
     k < r k r return 0 0 r = min(r, k - r) r min(r, k - r) min r k - r k r numer, denom = 1, 1 numer 1 denom 1 for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
     l range(r) range r numer *= (k - l) numer k - l k l numer %= MOD numer MOD denom *= l + 1 denom l + 1 l 1 denom %= MOD denom MOD return numer * pow(denom, MOD - 2, MOD) % MOD numer * pow(denom, MOD - 2, MOD) % MOD numer * pow(denom, MOD - 2, MOD) numer pow(denom, MOD - 2, MOD) pow denom MOD - 2 MOD 2 MOD MOD k k r r MOD 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 all_ptn = pow(2, n, MOD) all_ptn pow(2, n, MOD) pow 2 n MOD a_ptn = combination(n, a, MOD) a_ptn combination(n, a, MOD) combination n a MOD b_ptn = combination(n, b, MOD) b_ptn combination(n, b, MOD) combination n b MOD ans = (all_ptn - (a_ptn + b_ptn) - 1) % MOD ans (all_ptn - (a_ptn + b_ptn) - 1) % MOD all_ptn - (a_ptn + b_ptn) - 1 all_ptn - (a_ptn + b_ptn) all_ptn a_ptn + b_ptn a_ptn b_ptn 1 MOD print(ans) print ans input = sys.stdin.buffer.readline sys.stdin.buffer.readline input ans = (all_ptn - (a_ptn + b_ptn) - 1) % MOD (all_ptn - (a_ptn + b_ptn) - 1) % MOD ans n, a, b = map(int, input().split()) map(int, input().split()) n a, b = map(int, input().split()) map(int, input().split()) a b = map(int, input().split()) map(int, input().split()) b all_ptn = pow(2, n, MOD) pow(2, n, MOD) all_ptn def combination(k, r, MOD):
    """kCrを求める"""
    if k < r:
        return 0
    r = min(r, k - r)
    numer, denom = 1, 1
    for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
    return numer * pow(denom, MOD - 2, MOD) % MOD def combination(k, r, MOD):
    """kCrを求める"""
    if k < r:
        return 0
    r = min(r, k - r)
    numer, denom = 1, 1
    for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
    return numer * pow(denom, MOD - 2, MOD) % MOD combination MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD a_ptn = combination(n, a, MOD) combination(n, a, MOD) a_ptn b_ptn = combination(n, b, MOD) combination(n, b, MOD) b_ptn
import sys
input = sys.stdin.buffer.readline


def combination(k, r, MOD):
    """kCrを求める"""
    if k < r:
        return 0
    r = min(r, k - r)
    numer, denom = 1, 1
    for l in range(r):
        numer *= (k - l)
        numer %= MOD
        denom *= l + 1
        denom %= MOD
    return numer * pow(denom, MOD - 2, MOD) % MOD


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


all_ptn = pow(2, n, MOD)
a_ptn = combination(n, a, MOD)
b_ptn = combination(n, b, MOD)

ans = (all_ptn - (a_ptn + b_ptn) - 1) % MOD
print(ans)