MOD = 10**9 + 7

def comb(n, k, MOD):

    if n < k or n < 0 or k < 0:

        return 0

    if k == 0:

        return 1

    iinv = [1] * (k + 1)

    ans = n

    for i in range(2, k + 1):

        iinv[i] = MOD - iinv[MOD % i] * (MOD // i) % MOD

        ans *= (n + 1 - i) * iinv[i] % MOD

        ans %= MOD

    return ans

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

print(((pow(2,n,MOD)-1-comb(n,a,MOD)-comb(n,b,MOD)+MOD*10)%MOD))
MOD = 10**9 + 7

def comb(n, k, MOD):

    if n < k or n < 0 or k < 0:

        return 0

    if k == 0:

        return 1

    iinv = [1] * (k + 1)

    ans = n

    for i in range(2, k + 1):

        iinv[i] = MOD - iinv[MOD % i] * (MOD // i) % MOD

        ans *= (n + 1 - i) * iinv[i] % MOD

        ans %= MOD

    return ans

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

ans = pow(2,n,MOD)

print((((ans-comb(n,a,MOD))%MOD-comb(n,b,MOD))%MOD-1))
MOD = 10**9 + 7


def comb(n, k, MOD):
    if n < k or n < 0 or k < 0:
        return 0
    if k == 0:
        return 1
    iinv = [1] * (k + 1)
    ans = n
    for i in range(2, k + 1):
        iinv[i] = MOD - iinv[MOD % i] * (MOD // i) % MOD
        ans *= (n + 1 - i) * iinv[i] % MOD
        ans %= MOD
    return ans


n, a, b = list(map(int, input().split()))
print(((pow(2, n, MOD) - 1 - comb(n, a, MOD) - comb(n, b, MOD) + MOD * 10) % MOD))

MOD = 10**9 + 7


def comb(n, k, MOD):
    if n < k or n < 0 or k < 0:
        return 0
    if k == 0:
        return 1
    iinv = [1] * (k + 1)
    ans = n
    for i in range(2, k + 1):
        iinv[i] = MOD - iinv[MOD % i] * (MOD // i) % MOD
        ans *= (n + 1 - i) * iinv[i] % MOD
        ans %= MOD
    return ans


n, a, b = list(map(int, input().split()))
ans = pow(2, n, MOD)
print((((ans - comb(n, a, MOD)) % MOD - comb(n, b, MOD)) % MOD - 1))

-print(((pow(2, n, MOD) - 1 - comb(n, a, MOD) - comb(n, b, MOD) + MOD * 10) % MOD)) +ans = pow(2, n, MOD) +print((((ans - comb(n, a, MOD)) % MOD - comb(n, b, MOD)) % MOD - 1))