MOD = 10 ** 9 + 7

def nCk(n, k):
    if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
    res = 1
    for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
    return res

n, a, b = map(int, input().split())
ret = (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD
print(ret) MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 def nCk(n, k):
    if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
    res = 1
    for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
    return res nCk if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
     k > n or min(n, k) < 0 k > n k n min(n, k) < 0 min(n, k) min n k 0 raise Exception('Not correct input values!') Exception('Not correct input values!') Exception 'Not correct input values!' res = 1 res 1 for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
     i range(1, k + 1) range 1 k + 1 k 1 res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD res (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD res * (n - i + 1) * pow(i, MOD - 2, MOD) res * (n - i + 1) res n - i + 1 n - i n i 1 pow(i, MOD - 2, MOD) pow i MOD - 2 MOD 2 MOD MOD return res res n n k k n, a, b = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split a b ret = (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD ret (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b) pow(2, n, MOD) - 1 - nCk(n, a) pow(2, n, MOD) - 1 pow(2, n, MOD) pow 2 n MOD 1 nCk(n, a) nCk n a nCk(n, b) nCk n b MOD print(ret) print ret a, b = map(int, input().split()) map(int, input().split()) a MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD n, a, b = map(int, input().split()) map(int, input().split()) n ret = (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD ret def nCk(n, k):
    if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
    res = 1
    for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
    return res def nCk(n, k):
    if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
    res = 1
    for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
    return res nCk b = map(int, input().split()) map(int, input().split()) b
MOD = 10 ** 9 + 7

def nCk(n, k):
    if k > n or min(n, k) < 0:
        raise Exception('Not correct input values!')
    res = 1
    for i in range(1, k + 1):
        res = (res * (n - i + 1) * pow(i, MOD - 2, MOD)) % MOD
    return res

n, a, b = map(int, input().split())
ret = (pow(2, n, MOD) - 1 - nCk(n, a) - nCk(n, b)) % MOD
print(ret)