def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y

def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m
def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res


def power_func(a,n,p):
    bi = str(format(n,"b"))#2進表現に
    res = 1
    for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
    return res



n,a,b=[int(i) for i in input().split()]
mod=10**9+7

print((power_func(2,n,mod)-1-combination(n, a, mod)-combination(n, b, mod))%mod) def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y egcd if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y a == 0 a 0 return b, 0, 1 return b, 0, 1 b 0 1 g, y, x = egcd(b % a, a) g egcd(b % a, a) egcd b % a b a a y x return g, x - (b // a) * y, y return g, x - (b // a) * y, y g x - (b // a) * y x (b // a) * y b // a b a y y a a b b def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m modinv g, x, y = egcd(a, m) g egcd(a, m) egcd a m x y if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m g != 1 g 1 raise Exception('modular inverse does not exist') Exception('modular inverse does not exist') Exception 'modular inverse does not exist' return x % m x % m x m a a m m def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res combination r = min(r, n-r) r min(r, n-r) min r n-r n r res = 1 res 1 for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
     i range(r) range r res = res * (n - i) * modinv(i+1, mod) % mod res res * (n - i) * modinv(i+1, mod) % mod res * (n - i) * modinv(i+1, mod) res * (n - i) res n - i n i modinv(i+1, mod) modinv i+1 i 1 mod mod return res res n n r r mod=10**9+7 mod 10**9+7 10**9 10 9 7 def power_func(a,n,p):
    bi = str(format(n,"b"))#2進表現に
    res = 1
    for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
    return res power_func bi = str(format(n,"b")) bi str(format(n,"b")) str format(n,"b") format n "b" res = 1 res 1 for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
     i range(len(bi)) range len(bi) len bi res = (res*res) %p res (res*res) %p res*res res res p if bi[i] == "1":
            res = (res*a) %p
     bi[i] == "1" bi[i] bi i "1" res = (res*a) %p res (res*a) %p res*a res a p return res res a a n n p p int(i) for i in input().split() for i in input().split() i input().split() ().split () input split for i in input().split() int(i) int i n,a,b=[int(i) for i in input().split()] n [int(i) for i in input().split()] a b mod=10**9+7 mod 10**9+7 10**9 10 9 7 print((power_func(2,n,mod)-1-combination(n, a, mod)-combination(n, b, mod))%mod) print (power_func(2,n,mod)-1-combination(n, a, mod)-combination(n, b, mod))%mod power_func(2,n,mod)-1-combination(n, a, mod)-combination(n, b, mod) power_func(2,n,mod)-1-combination(n, a, mod) power_func(2,n,mod)-1 power_func(2,n,mod) power_func 2 n mod 1 combination(n, a, mod) combination n a mod combination(n, b, mod) combination n b mod mod b=[int(i) for i in input().split()] [int(i) for i in input().split()] b def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res combination mod=10**9+7 10**9+7 mod def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m modinv n,a,b=[int(i) for i in input().split()] [int(i) for i in input().split()] n def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y egcd def power_func(a,n,p):
    bi = str(format(n,"b"))#2進表現に
    res = 1
    for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
    return res def power_func(a,n,p):
    bi = str(format(n,"b"))#2進表現に
    res = 1
    for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
    return res power_func a,b=[int(i) for i in input().split()] [int(i) for i in input().split()] a
def egcd(a, b):
    if a == 0:
        return b, 0, 1
    else:
        g, y, x = egcd(b % a, a)
        return g, x - (b // a) * y, y

def modinv(a, m):
    g, x, y = egcd(a, m)
    if g != 1:
        raise Exception('modular inverse does not exist')
    else:
        return x % m
def combination(n, r, mod=10**9+7):
    r = min(r, n-r)
    res = 1
    for i in range(r):
        res = res * (n - i) * modinv(i+1, mod) % mod
    return res


def power_func(a,n,p):
    bi = str(format(n,"b"))#2進表現に
    res = 1
    for i in range(len(bi)):
        res = (res*res) %p
        if bi[i] == "1":
            res = (res*a) %p
    return res



n,a,b=[int(i) for i in input().split()]
mod=10**9+7

print((power_func(2,n,mod)-1-combination(n, a, mod)-combination(n, b, mod))%mod)
