def cmb(n, r, p):

    r = min(r, n - r)

    res = 1

    for i in range(r):

        res *= pow(i+1, p-2, p)  # 分母の逆元(フェルマーの定理)

        res *= n-i  # 分子

        res %= p

    return res



p = 10 ** 9 + 7

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

ans = pow(2, n, p) - 1

ans -= cmb(n, a, p) + cmb(n, b, p)

print((ans % p))

from functools import reduce



def cmb(n, r, p):

    r = min(n - r, r)

    if r == 0:

        return 1

    numer = reduce(lambda x, y: (x*y)%p, list(range(n, n - r, -1)))

    denom = reduce(lambda x, y: (x*y)%p, list(range(1, r + 1)))

    return (numer * pow(denom, p-2, p)) % p



p = 10 ** 9 + 7

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



ans = pow(2, n, p) - 1

ans -= cmb(n, a, p) + cmb(n, b, p)

print((ans % p))

def cmb(n, r, p):
    r = min(r, n - r)
    res = 1
    for i in range(r):
        res *= pow(i + 1, p - 2, p)  # 分母の逆元(フェルマーの定理)
        res *= n - i  # 分子
        res %= p
    return res


p = 10**9 + 7
n, a, b = list(map(int, input().split()))
ans = pow(2, n, p) - 1
ans -= cmb(n, a, p) + cmb(n, b, p)
print((ans % p))

from functools import reduce


def cmb(n, r, p):
    r = min(n - r, r)
    if r == 0:
        return 1
    numer = reduce(lambda x, y: (x * y) % p, list(range(n, n - r, -1)))
    denom = reduce(lambda x, y: (x * y) % p, list(range(1, r + 1)))
    return (numer * pow(denom, p - 2, p)) % p


p = 10**9 + 7
n, a, b = list(map(int, input().split()))
ans = pow(2, n, p) - 1
ans -= cmb(n, a, p) + cmb(n, b, p)
print((ans % p))

+from functools import reduce + + -    r = min(r, n - r) -    res = 1 -    for i in range(r): -        res *= pow(i + 1, p - 2, p)  # 分母の逆元(フェルマーの定理) -        res *= n - i  # 分子 -        res %= p -    return res +    r = min(n - r, r) +    if r == 0: +        return 1 +    numer = reduce(lambda x, y: (x * y) % p, list(range(n, n - r, -1))) +    denom = reduce(lambda x, y: (x * y) % p, list(range(1, r + 1))) +    return (numer * pow(denom, p - 2, p)) % p