from operator import mul
from functools import reduce


def combinations_count(n, r, P):
    r = min(r, n - r)
    inv_y = 1
    for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
    inv_y = pow(inv_y, P - 2, P)
    x = 1
    for i in range(n - r + 1, n + 1):
        x = x * i % P
    return (x * inv_y) % P



n, a, b = map(int, input().split())
P = int(1e9+7)
ans = pow(2, n, P) - 1  # 1本以上の花束の種類


ans = (ans - combinations_count(n, a, P))
ans = (ans - combinations_count(n, b, P))
print(ans%P) from operator import mul from functools import reduce def combinations_count(n, r, P):
    r = min(r, n - r)
    inv_y = 1
    for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
    inv_y = pow(inv_y, P - 2, P)
    x = 1
    for i in range(n - r + 1, n + 1):
        x = x * i % P
    return (x * inv_y) % P combinations_count r = min(r, n - r) r min(r, n - r) min r n - r n r inv_y = 1 inv_y 1 for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
     i range(1, r + 1) range 1 r + 1 r 1 inv_y = (inv_y * i) % P inv_y (inv_y * i) % P inv_y * i inv_y i P inv_y = pow(inv_y, P - 2, P) inv_y pow(inv_y, P - 2, P) pow inv_y P - 2 P 2 P x = 1 x 1 for i in range(n - r + 1, n + 1):
        x = x * i % P
     i range(n - r + 1, n + 1) range n - r + 1 n - r n r 1 n + 1 n 1 x = x * i % P x x * i % P x * i x i P return (x * inv_y) % P (x * inv_y) % P x * inv_y x inv_y P 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 = int(1e9+7) P int(1e9+7) int 1e9+7 1e9 7 ans = pow(2, n, P) - 1 ans pow(2, n, P) - 1 pow(2, n, P) pow 2 n P 1 ans = (ans - combinations_count(n, a, P)) ans ans - combinations_count(n, a, P) ans combinations_count(n, a, P) combinations_count n a P ans = (ans - combinations_count(n, b, P)) ans ans - combinations_count(n, b, P) ans combinations_count(n, b, P) combinations_count n b P print(ans%P) print ans%P ans P n, a, b = map(int, input().split()) map(int, input().split()) n ans = (ans - combinations_count(n, a, P)) ans - combinations_count(n, a, P) ans a, b = map(int, input().split()) map(int, input().split()) a def combinations_count(n, r, P):
    r = min(r, n - r)
    inv_y = 1
    for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
    inv_y = pow(inv_y, P - 2, P)
    x = 1
    for i in range(n - r + 1, n + 1):
        x = x * i % P
    return (x * inv_y) % P def combinations_count(n, r, P):
    r = min(r, n - r)
    inv_y = 1
    for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
    inv_y = pow(inv_y, P - 2, P)
    x = 1
    for i in range(n - r + 1, n + 1):
        x = x * i % P
    return (x * inv_y) % P combinations_count b = map(int, input().split()) map(int, input().split()) b ans = pow(2, n, P) - 1 pow(2, n, P) - 1 ans ans = (ans - combinations_count(n, b, P)) ans - combinations_count(n, b, P) ans P = int(1e9+7) int(1e9+7) P
from operator import mul
from functools import reduce


def combinations_count(n, r, P):
    r = min(r, n - r)
    inv_y = 1
    for i in range(1, r + 1):
        inv_y = (inv_y * i) % P
    inv_y = pow(inv_y, P - 2, P)
    x = 1
    for i in range(n - r + 1, n + 1):
        x = x * i % P
    return (x * inv_y) % P



n, a, b = map(int, input().split())
P = int(1e9+7)
ans = pow(2, n, P) - 1  # 1本以上の花束の種類


ans = (ans - combinations_count(n, a, P))
ans = (ans - combinations_count(n, b, P))
print(ans%P)
