def abp(a, b, p):
    if b == 0:
        return 1
    if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
    if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p

def nCr(n, r, p):
    total = 1
    for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
    return total

n, a, b = map(int, input().split())
p = 1000000007
ret = abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1
print(ret % p) def abp(a, b, p):
    if b == 0:
        return 1
    if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
    if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p abp if b == 0:
        return 1
     b == 0 b 0 return 1 1 if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
     b % 2 == 0 b % 2 b 2 0 tmp = abp(a, b // 2, p) tmp abp(a, b // 2, p) abp a b // 2 b 2 p return (tmp * tmp) % p (tmp * tmp) % p tmp * tmp tmp tmp p if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p b % 2 == 1 b % 2 b 2 1 return (a * abp(a, b - 1, p)) % p (a * abp(a, b - 1, p)) % p a * abp(a, b - 1, p) a abp(a, b - 1, p) abp a b - 1 b 1 p p a a b b p p def nCr(n, r, p):
    total = 1
    for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
    return total nCr total = 1 total 1 for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
     i range(r) range r total *= (n - i) * abp(r - i, p - 2, p) total (n - i) * abp(r - i, p - 2, p) n - i n i abp(r - i, p - 2, p) abp r - i r i p - 2 p 2 p total %= p total p return total total n n r r p p n, a, b = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split a b p = 1000000007 p 1000000007 ret = abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1 ret abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1 abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) abp(2, n, p) - nCr(n, a, p) abp(2, n, p) abp 2 n p nCr(n, a, p) nCr n a p nCr(n, b, p) nCr n b p 1 print(ret % p) print ret % p ret p def abp(a, b, p):
    if b == 0:
        return 1
    if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
    if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p def abp(a, b, p):
    if b == 0:
        return 1
    if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
    if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p abp b = map(int, input().split()) map(int, input().split()) b def nCr(n, r, p):
    total = 1
    for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
    return total def nCr(n, r, p):
    total = 1
    for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
    return total nCr n, a, b = map(int, input().split()) map(int, input().split()) n a, b = map(int, input().split()) map(int, input().split()) a p = 1000000007 1000000007 p ret = abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1 abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1 ret
def abp(a, b, p):
    if b == 0:
        return 1
    if b % 2 == 0:
        tmp = abp(a, b // 2, p)
        return (tmp * tmp) % p
    if b % 2 == 1:
        return (a * abp(a, b - 1, p)) % p

def nCr(n, r, p):
    total = 1
    for i in range(r):
        total *= (n - i) * abp(r - i, p - 2, p)
        total %= p
    return total

n, a, b = map(int, input().split())
p = 1000000007
ret = abp(2, n, p) - nCr(n, a, p) - nCr(n, b, p) - 1
print(ret % p)
