from functools import reduce

def main():
    n, a, b = map(int, input().split())
    p = 10 ** 9 + 7

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

    print((ans - comb(n,a,p) - comb(n,b,p)) % p)

def comb(n, r, p):
    r = min(r, n-r)
    if r == 0:
        return 1
    
    num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1))
    den = reduce(lambda x, y: (x * y) % p, range(1, r + 1))

    return (num * pow(den, p - 2, p)) % p

if __name__ == '__main__':
    main() from functools import reduce def main():
    n, a, b = map(int, input().split())
    p = 10 ** 9 + 7

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

    print((ans - comb(n,a,p) - comb(n,b,p)) % p) main n, a, b = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split a b p = 10 ** 9 + 7 p 10 ** 9 + 7 10 ** 9 10 9 7 ans = pow(2, n, p) - 1 ans pow(2, n, p) - 1 pow(2, n, p) pow 2 n p 1 print((ans - comb(n,a,p) - comb(n,b,p)) % p) print (ans - comb(n,a,p) - comb(n,b,p)) % p ans - comb(n,a,p) - comb(n,b,p) ans - comb(n,a,p) ans comb(n,a,p) comb n a p comb(n,b,p) comb n b p p def comb(n, r, p):
    r = min(r, n-r)
    if r == 0:
        return 1
    
    num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1))
    den = reduce(lambda x, y: (x * y) % p, range(1, r + 1))

    return (num * pow(den, p - 2, p)) % p comb r = min(r, n-r) r min(r, n-r) min r n-r n r if r == 0:
        return 1
    
     r == 0 r 0 return 1 1 num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1)) num reduce(lambda x, y: (x * y) % p, range(n, n - r, -1)) reduce lambda x, y: (x * y) % p (x * y) % p x * y x y p x y range(n, n - r, -1) range n n - r n r -1 den = reduce(lambda x, y: (x * y) % p, range(1, r + 1)) den reduce(lambda x, y: (x * y) % p, range(1, r + 1)) reduce lambda x, y: (x * y) % p (x * y) % p x * y x y p x y range(1, r + 1) range 1 r + 1 r 1 return (num * pow(den, p - 2, p)) % p (num * pow(den, p - 2, p)) % p num * pow(den, p - 2, p) num pow(den, p - 2, p) pow den p - 2 p 2 p p n n r r p p if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main def comb(n, r, p):
    r = min(r, n-r)
    if r == 0:
        return 1
    
    num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1))
    den = reduce(lambda x, y: (x * y) % p, range(1, r + 1))

    return (num * pow(den, p - 2, p)) % p def comb(n, r, p):
    r = min(r, n-r)
    if r == 0:
        return 1
    
    num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1))
    den = reduce(lambda x, y: (x * y) % p, range(1, r + 1))

    return (num * pow(den, p - 2, p)) % p comb def main():
    n, a, b = map(int, input().split())
    p = 10 ** 9 + 7

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

    print((ans - comb(n,a,p) - comb(n,b,p)) % p) def main():
    n, a, b = map(int, input().split())
    p = 10 ** 9 + 7

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

    print((ans - comb(n,a,p) - comb(n,b,p)) % p) main
from functools import reduce

def main():
    n, a, b = map(int, input().split())
    p = 10 ** 9 + 7

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

    print((ans - comb(n,a,p) - comb(n,b,p)) % p)

def comb(n, r, p):
    r = min(r, n-r)
    if r == 0:
        return 1
    
    num = reduce(lambda x, y: (x * y) % p, range(n, n - r, -1))
    den = reduce(lambda x, y: (x * y) % p, range(1, r + 1))

    return (num * pow(den, p - 2, p)) % p

if __name__ == '__main__':
    main()