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

P = 10 ** 9 + 7


def conb(n, r):
    P = 10 ** 9 + 7
    x = 1
    y = 1
    for i in range(n - r + 1, n + 1):
        x = (x * i % P)
    for i in range(1, r + 1):
        y = (y * i % P)
    y_inv = pow(y, P - 2)
    return x * y_inv


def pow(x, n):
    ans = 1
    while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
    return ans


print((pow(2, n) - conb(n, a) - conb(n, b) - 1) % P) n, a, b = list(map(int, input().split())) n list(map(int, input().split())) list 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 def conb(n, r):
    P = 10 ** 9 + 7
    x = 1
    y = 1
    for i in range(n - r + 1, n + 1):
        x = (x * i % P)
    for i in range(1, r + 1):
        y = (y * i % P)
    y_inv = pow(y, P - 2)
    return x * y_inv conb P = 10 ** 9 + 7 P 10 ** 9 + 7 10 ** 9 10 9 7 x = 1 x 1 y = 1 y 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 for i in range(1, r + 1):
        y = (y * i % P)
     i range(1, r + 1) range 1 r + 1 r 1 y = (y * i % P) y y * i % P y * i y i P y_inv = pow(y, P - 2) y_inv pow(y, P - 2) pow y P - 2 P 2 return x * y_inv x * y_inv x y_inv n n r r def pow(x, n):
    ans = 1
    while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
    return ans pow ans = 1 ans 1 while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
     n > 0 n 0 if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
         bin(n & 1) == bin(1) bin(n & 1) bin n & 1 n 1 bin(1) bin 1 ans = (ans * x) % P ans (ans * x) % P ans * x ans x P x = (x * x) % P x (x * x) % P x * x x x P n = n >> 1 n n >> 1 n 1 return ans ans x x n n print((pow(2, n) - conb(n, a) - conb(n, b) - 1) % P) print (pow(2, n) - conb(n, a) - conb(n, b) - 1) % P pow(2, n) - conb(n, a) - conb(n, b) - 1 pow(2, n) - conb(n, a) - conb(n, b) pow(2, n) - conb(n, a) pow(2, n) pow 2 n conb(n, a) conb n a conb(n, b) conb n b 1 P a, b = list(map(int, input().split())) list(map(int, input().split())) a def pow(x, n):
    ans = 1
    while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
    return ans def pow(x, n):
    ans = 1
    while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
    return ans pow n, a, b = list(map(int, input().split())) list(map(int, input().split())) n P = 10 ** 9 + 7 10 ** 9 + 7 P def conb(n, r):
    P = 10 ** 9 + 7
    x = 1
    y = 1
    for i in range(n - r + 1, n + 1):
        x = (x * i % P)
    for i in range(1, r + 1):
        y = (y * i % P)
    y_inv = pow(y, P - 2)
    return x * y_inv def conb(n, r):
    P = 10 ** 9 + 7
    x = 1
    y = 1
    for i in range(n - r + 1, n + 1):
        x = (x * i % P)
    for i in range(1, r + 1):
        y = (y * i % P)
    y_inv = pow(y, P - 2)
    return x * y_inv conb b = list(map(int, input().split())) list(map(int, input().split())) b
n, a, b = list(map(int, input().split()))

P = 10 ** 9 + 7


def conb(n, r):
    P = 10 ** 9 + 7
    x = 1
    y = 1
    for i in range(n - r + 1, n + 1):
        x = (x * i % P)
    for i in range(1, r + 1):
        y = (y * i % P)
    y_inv = pow(y, P - 2)
    return x * y_inv


def pow(x, n):
    ans = 1
    while (n > 0):
        if (bin(n & 1) == bin(1)):
            ans = (ans * x) % P
        x = (x * x) % P
        n = n >> 1  # ビットシフト
    return ans


print((pow(2, n) - conb(n, a) - conb(n, b) - 1) % P)
