n, a, b = list(map(int, input().split()))
MOD = 10**9 + 7

# 1!からmax(a, b)!までの逆元をMODで割ったあまりと
# nからn-max(a*b)までをかけてMODで割ったあまりを求めます。
fact = {}
fact[n] = n
fact[n - 1] = fact[n] * (n - 1) % MOD

inv_fact = [0] * (max(a, b) + 1)
inv_fact[1] = 1

for i in range(2, max(a, b) + 1):
    fact[n - i] = fact[n - i + 1] * (n - i) % MOD
    inv_fact[i] = inv_fact[i - 1] * pow(i, -1, MOD) % MOD

subtrahend = 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b]
minuend = pow(2, n, MOD)

print((minuend + 2 * MOD - subtrahend) % MOD) 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 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 fact = {} fact {} fact[n] = n fact[n] fact n n fact[n - 1] = fact[n] * (n - 1) % MOD fact[n - 1] fact n - 1 n 1 fact[n] * (n - 1) % MOD fact[n] * (n - 1) fact[n] fact n n - 1 n 1 MOD inv_fact = [0] * (max(a, b) + 1) inv_fact [0] * (max(a, b) + 1) [0] 0 max(a, b) + 1 max(a, b) max a b 1 inv_fact[1] = 1 inv_fact[1] inv_fact 1 1 for i in range(2, max(a, b) + 1):
    fact[n - i] = fact[n - i + 1] * (n - i) % MOD
    inv_fact[i] = inv_fact[i - 1] * pow(i, -1, MOD) % MOD i range(2, max(a, b) + 1) range 2 max(a, b) + 1 max(a, b) max a b 1 fact[n - i] = fact[n - i + 1] * (n - i) % MOD fact[n - i] fact n - i n i fact[n - i + 1] * (n - i) % MOD fact[n - i + 1] * (n - i) fact[n - i + 1] fact n - i + 1 n - i n i 1 n - i n i MOD inv_fact[i] = inv_fact[i - 1] * pow(i, -1, MOD) % MOD inv_fact[i] inv_fact i inv_fact[i - 1] * pow(i, -1, MOD) % MOD inv_fact[i - 1] * pow(i, -1, MOD) inv_fact[i - 1] inv_fact i - 1 i 1 pow(i, -1, MOD) pow i -1 MOD MOD subtrahend = 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b] subtrahend 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b] 1 + fact[n - a + 1] * inv_fact[a] 1 fact[n - a + 1] * inv_fact[a] fact[n - a + 1] fact n - a + 1 n - a n a 1 inv_fact[a] inv_fact a fact[n - b + 1] * inv_fact[b] fact[n - b + 1] fact n - b + 1 n - b n b 1 inv_fact[b] inv_fact b minuend = pow(2, n, MOD) minuend pow(2, n, MOD) pow 2 n MOD print((minuend + 2 * MOD - subtrahend) % MOD) print (minuend + 2 * MOD - subtrahend) % MOD minuend + 2 * MOD - subtrahend minuend + 2 * MOD minuend 2 * MOD 2 MOD subtrahend MOD b = list(map(int, input().split())) list(map(int, input().split())) b fact = {} {} fact minuend = pow(2, n, MOD) pow(2, n, MOD) minuend a, b = list(map(int, input().split())) list(map(int, input().split())) a n, a, b = list(map(int, input().split())) list(map(int, input().split())) n inv_fact = [0] * (max(a, b) + 1) [0] * (max(a, b) + 1) inv_fact MOD = 10**9 + 7 10**9 + 7 MOD subtrahend = 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b] 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b] subtrahend
n, a, b = list(map(int, input().split()))
MOD = 10**9 + 7

# 1!からmax(a, b)!までの逆元をMODで割ったあまりと
# nからn-max(a*b)までをかけてMODで割ったあまりを求めます。
fact = {}
fact[n] = n
fact[n - 1] = fact[n] * (n - 1) % MOD

inv_fact = [0] * (max(a, b) + 1)
inv_fact[1] = 1

for i in range(2, max(a, b) + 1):
    fact[n - i] = fact[n - i + 1] * (n - i) % MOD
    inv_fact[i] = inv_fact[i - 1] * pow(i, -1, MOD) % MOD

subtrahend = 1 + fact[n - a + 1] * inv_fact[a] + fact[n - b + 1] * inv_fact[b]
minuend = pow(2, n, MOD)

print((minuend + 2 * MOD - subtrahend) % MOD)
