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



M = 10**9+7



# 2**n

twon = pow(2,n,M)



# nCr+1 = nCr * (n-r)/(r+1)

# nCr = A(r)とおくと ※nは固定

# A(r+1) = A(r) * (n-r)/(r+1)

# ここでmod M では、フェルマーの小定理より

# 1/(r+1) === (r+1)**(M-2) ※===は合同記号の意味

# よって　A(r+1) = A(r) * (n-r) * (r+1)**(M-2)

L = [0] * (2*(10**5) + 1)

L[0] = 1

for i in range(len(L)-1):

    L[i+1] = ( L[i] * (n-i) * pow(i+1,M-2,M) ) % M

# nCa

nCa = L[a]



# nCb

nCb = L[b]



ans = twon - 1 - nCa - nCb



print((ans % M))
import time







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

start = time.time() # 時間計測開始



M = 10**9+7



# 2**n

twon = pow(2,n,M)



# nCr+1 = nCr * (n-r)/(r+1)

# nCr = A(r)とおくと ※nは固定

# A(r+1) = A(r) * (n-r)/(r+1)

# ここでmod M では、フェルマーの小定理より

# 1/(r+1) === (r+1)**(M-2) ※===は合同記号の意味

# よって　A(r+1) = A(r) * (n-r) * (r+1)**(M-2)

# L = [0] * (2*(10**5) + 1)

# L[0] = 1

# for i in range(len(L)-1):

#     L[i+1] = ( L[i] * (n-i) * pow(i+1,M-2,M) ) % M



def comb_mod(n,r,mod):

    x = 1

    y = 1

    for i in range(r):

        x = (x*(n-i)) % mod

        y = (y*(i+1)) % mod

    return (x * pow(y,mod-2,mod))







# nCa

# nCa = L[a]

nCa = comb_mod(n,a,M)

# nCb

# nCb = L[b]

nCb = comb_mod(n,b,M)



ans = twon - 1 - nCa - nCb



elapsed_time = time.time() - start # 時間計測終了

# print(elapsed_time)

print((ans % M))

n, a, b = list(map(int, input().split()))
M = 10**9 + 7
# 2**n
twon = pow(2, n, M)
# nCr+1 = nCr * (n-r)/(r+1)
# nCr = A(r)とおくと ※nは固定
# A(r+1) = A(r) * (n-r)/(r+1)
# ここでmod M では、フェルマーの小定理より
# 1/(r+1) === (r+1)**(M-2) ※===は合同記号の意味
# よって　A(r+1) = A(r) * (n-r) * (r+1)**(M-2)
L = [0] * (2 * (10**5) + 1)
L[0] = 1
for i in range(len(L) - 1):
    L[i + 1] = (L[i] * (n - i) * pow(i + 1, M - 2, M)) % M
# nCa
nCa = L[a]
# nCb
nCb = L[b]
ans = twon - 1 - nCa - nCb
print((ans % M))

import time

n, a, b = list(map(int, input().split()))
start = time.time()  # 時間計測開始
M = 10**9 + 7
# 2**n
twon = pow(2, n, M)
# nCr+1 = nCr * (n-r)/(r+1)
# nCr = A(r)とおくと ※nは固定
# A(r+1) = A(r) * (n-r)/(r+1)
# ここでmod M では、フェルマーの小定理より
# 1/(r+1) === (r+1)**(M-2) ※===は合同記号の意味
# よって　A(r+1) = A(r) * (n-r) * (r+1)**(M-2)
# L = [0] * (2*(10**5) + 1)
# L[0] = 1
# for i in range(len(L)-1):
#     L[i+1] = ( L[i] * (n-i) * pow(i+1,M-2,M) ) % M
def comb_mod(n, r, mod):
    x = 1
    y = 1
    for i in range(r):
        x = (x * (n - i)) % mod
        y = (y * (i + 1)) % mod
    return x * pow(y, mod - 2, mod)


# nCa
# nCa = L[a]
nCa = comb_mod(n, a, M)
# nCb
# nCb = L[b]
nCb = comb_mod(n, b, M)
ans = twon - 1 - nCa - nCb
elapsed_time = time.time() - start  # 時間計測終了
# print(elapsed_time)
print((ans % M))

+import time + +start = time.time()  # 時間計測開始 -L = [0] * (2 * (10**5) + 1) -L[0] = 1 -for i in range(len(L) - 1): -    L[i + 1] = (L[i] * (n - i) * pow(i + 1, M - 2, M)) % M +# L = [0] * (2*(10**5) + 1) +# L[0] = 1 +# for i in range(len(L)-1): +#     L[i+1] = ( L[i] * (n-i) * pow(i+1,M-2,M) ) % M +def comb_mod(n, r, mod): +    x = 1 +    y = 1 +    for i in range(r): +        x = (x * (n - i)) % mod +        y = (y * (i + 1)) % mod +    return x * pow(y, mod - 2, mod) + + -nCa = L[a] +# nCa = L[a] +nCa = comb_mod(n, a, M) -nCb = L[b] +# nCb = L[b] +nCb = comb_mod(n, b, M) +elapsed_time = time.time() - start  # 時間計測終了 +# print(elapsed_time)