import sys
import itertools
# import numpy as np
import time
import math

sys.setrecursionlimit(10 ** 7)

from collections import defaultdict

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

MAX = 2 * 10 ** 5 + 5
MOD = 10 ** 9 + 7

fac = [0 for i in range(MAX)]
finv = [0 for i in range(MAX)]
inv = [0 for i in range(MAX)]

def comInit(mod):
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod

def com(mod, n, k):
    numerator = 1
    for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
    return (numerator * finv[k] % mod)
comInit(MOD)

n, a, b = map(int, readline().split())
nb = n
x = 2
y = 1
while n > 1:
    if n % 2 == 1:
        y *= x
        n -= 1
    else:
        x *= x
        n //= 2
    x %= MOD
    y %= MOD
ans = (x * y % MOD) - 1
print((ans - com(MOD, nb, a) - com(MOD, nb, b)) % MOD) import sys sys import itertools itertools import time time import math math sys.setrecursionlimit(10 ** 7) sys.setrecursionlimit sys setrecursionlimit 10 ** 7 10 7 from collections import defaultdict read = sys.stdin.buffer.read read sys.stdin.buffer.read sys.stdin.buffer sys.stdin sys stdin buffer read readline = sys.stdin.buffer.readline readline sys.stdin.buffer.readline sys.stdin.buffer sys.stdin sys stdin buffer readline readlines = sys.stdin.buffer.readlines readlines sys.stdin.buffer.readlines sys.stdin.buffer sys.stdin sys stdin buffer readlines MAX = 2 * 10 ** 5 + 5 MAX 2 * 10 ** 5 + 5 2 * 10 ** 5 2 10 ** 5 10 5 5 MOD = 10 ** 9 + 7 MOD 10 ** 9 + 7 10 ** 9 10 9 7 0 for i in range(MAX) for i in range(MAX) i range(MAX) range MAX for i in range(MAX) 0 fac = [0 for i in range(MAX)] fac [0 for i in range(MAX)] 0 for i in range(MAX) for i in range(MAX) i range(MAX) range MAX for i in range(MAX) 0 finv = [0 for i in range(MAX)] finv [0 for i in range(MAX)] 0 for i in range(MAX) for i in range(MAX) i range(MAX) range MAX for i in range(MAX) 0 inv = [0 for i in range(MAX)] inv [0 for i in range(MAX)] def comInit(mod):
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod comInit fac[0], fac[1] = 1, 1 fac[0] fac 0 1 fac[1] fac 1 1 finv[0], finv[1] = 1, 1 finv[0] finv 0 1 finv[1] finv 1 1 inv[1] = 1 inv[1] inv 1 1 for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod i range(2, MAX) range 2 MAX fac[i] = fac[i - 1] * i % mod fac[i] fac i fac[i - 1] * i % mod fac[i - 1] * i fac[i - 1] fac i - 1 i 1 i mod inv[i] = mod - inv[mod % i] * (mod // i) % mod inv[i] inv i mod - inv[mod % i] * (mod // i) % mod mod inv[mod % i] * (mod // i) % mod inv[mod % i] * (mod // i) inv[mod % i] inv mod % i mod i mod // i mod i mod finv[i] = finv[i - 1] * inv[i] % mod finv[i] finv i finv[i - 1] * inv[i] % mod finv[i - 1] * inv[i] finv[i - 1] finv i - 1 i 1 inv[i] inv i mod mod mod def com(mod, n, k):
    numerator = 1
    for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
    return (numerator * finv[k] % mod) com numerator = 1 numerator 1 for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
     i range(1, k + 1) range 1 k + 1 k 1 numerator *= (n - i + 1) numerator n - i + 1 n - i n i 1 numerator %= mod numerator mod return (numerator * finv[k] % mod) numerator * finv[k] % mod numerator * finv[k] numerator finv[k] finv k mod mod mod n n k k comInit(MOD) comInit MOD n, a, b = map(int, readline().split()) n map(int, readline().split()) map int readline().split() ().split () readline split a b nb = n nb n x = 2 x 2 y = 1 y 1 while n > 1:
    if n % 2 == 1:
        y *= x
        n -= 1
    else:
        x *= x
        n //= 2
    x %= MOD
    y %= MOD n > 1 n 1 if n % 2 == 1:
        y *= x
        n -= 1
    else:
        x *= x
        n //= 2
     n % 2 == 1 n % 2 n 2 1 y *= x y x n -= 1 n 1 x *= x x x n //= 2 n 2 x %= MOD x MOD y %= MOD y MOD ans = (x * y % MOD) - 1 ans (x * y % MOD) - 1 x * y % MOD x * y x y MOD 1 print((ans - com(MOD, nb, a) - com(MOD, nb, b)) % MOD) print (ans - com(MOD, nb, a) - com(MOD, nb, b)) % MOD ans - com(MOD, nb, a) - com(MOD, nb, b) ans - com(MOD, nb, a) ans com(MOD, nb, a) com MOD nb a com(MOD, nb, b) com MOD nb b MOD y *= x x y n //= 2 2 n x *= x x x n, a, b = map(int, readline().split()) map(int, readline().split()) n readlines = sys.stdin.buffer.readlines sys.stdin.buffer.readlines readlines MOD = 10 ** 9 + 7 10 ** 9 + 7 MOD finv = [0 for i in range(MAX)] [0 for i in range(MAX)] finv ans = (x * y % MOD) - 1 (x * y % MOD) - 1 ans x = 2 2 x def comInit(mod):
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod def comInit(mod):
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod comInit nb = n n nb def com(mod, n, k):
    numerator = 1
    for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
    return (numerator * finv[k] % mod) def com(mod, n, k):
    numerator = 1
    for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
    return (numerator * finv[k] % mod) com a, b = map(int, readline().split()) map(int, readline().split()) a readline = sys.stdin.buffer.readline sys.stdin.buffer.readline readline fac = [0 for i in range(MAX)] [0 for i in range(MAX)] fac n -= 1 1 n x %= MOD MOD x MAX = 2 * 10 ** 5 + 5 2 * 10 ** 5 + 5 MAX y = 1 1 y read = sys.stdin.buffer.read sys.stdin.buffer.read read y %= MOD MOD y inv = [0 for i in range(MAX)] [0 for i in range(MAX)] inv b = map(int, readline().split()) map(int, readline().split()) b
import sys
import itertools
# import numpy as np
import time
import math

sys.setrecursionlimit(10 ** 7)

from collections import defaultdict

read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines

MAX = 2 * 10 ** 5 + 5
MOD = 10 ** 9 + 7

fac = [0 for i in range(MAX)]
finv = [0 for i in range(MAX)]
inv = [0 for i in range(MAX)]

def comInit(mod):
    fac[0], fac[1] = 1, 1
    finv[0], finv[1] = 1, 1
    inv[1] = 1
    for i in range(2, MAX):
        fac[i] = fac[i - 1] * i % mod
        inv[i] = mod - inv[mod % i] * (mod // i) % mod
        finv[i] = finv[i - 1] * inv[i] % mod

def com(mod, n, k):
    numerator = 1
    for i in range(1, k + 1):
        numerator *= (n - i + 1)
        numerator %= mod
    return (numerator * finv[k] % mod)
comInit(MOD)

n, a, b = map(int, readline().split())
nb = n
x = 2
y = 1
while n > 1:
    if n % 2 == 1:
        y *= x
        n -= 1
    else:
        x *= x
        n //= 2
    x %= MOD
    y %= MOD
ans = (x * y % MOD) - 1
print((ans - com(MOD, nb, a) - com(MOD, nb, b)) % MOD)