import sys

N_MAX = 200000 + 5
INF = 10**9 + 7
sys.setrecursionlimit(N_MAX)
MOD = 10**9 + 7

# ## COMBINATION (MOD) ## #
MOD = 10**9 + 7  # , N = 2*10**5 で 0.3s
N_MAX = 2 * 10**5  # 問題サイズに合わせて変えておく

fac = [1, 1]  # 元テーブル
facinv = [1, 1]  # 逆元テーブル
inv = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, N_MAX + 1):
    fac.append((fac[-1] * i) % MOD)
    inv.append((-inv[MOD % i] * (MOD // i)) % MOD)
    facinv.append((facinv[-1] * inv[-1]) % MOD)


def fac(n, a):
    ans = 1
    for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
    return ans


def cmb(n, r):
    if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
    return fac[n] * facinv[r] * facinv[n - r] % MOD


def main():
    n, a, b = map(int, sys.stdin.readline().rstrip().split())

    # 全種類
    ans = pow(2, n, MOD) - 1  # -1 : 全部選ばない場合
    ans %= MOD

    # a種類になる場合
    ans -= fac(n, a) * facinv[a]
    ans %= MOD

    ans -= fac(n, b) * facinv[b]
    ans %= MOD

    print(ans)


main() import sys sys N_MAX = 200000 + 5 N_MAX 200000 + 5 200000 5 INF = 10**9 + 7 INF 10**9 + 7 10**9 10 9 7 sys.setrecursionlimit(N_MAX) sys.setrecursionlimit sys setrecursionlimit N_MAX MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 MOD = 10**9 + 7 MOD 10**9 + 7 10**9 10 9 7 N_MAX = 2 * 10**5 N_MAX 2 * 10**5 2 10**5 10 5 fac = [1, 1] fac [1, 1] 1 1 facinv = [1, 1] facinv [1, 1] 1 1 inv = [0, 1] inv [0, 1] 0 1 for i in range(2, N_MAX + 1):
    fac.append((fac[-1] * i) % MOD)
    inv.append((-inv[MOD % i] * (MOD // i)) % MOD)
    facinv.append((facinv[-1] * inv[-1]) % MOD) i range(2, N_MAX + 1) range 2 N_MAX + 1 N_MAX 1 fac.append((fac[-1] * i) % MOD) fac.append fac append (fac[-1] * i) % MOD fac[-1] * i fac[-1] fac -1 i MOD inv.append((-inv[MOD % i] * (MOD // i)) % MOD) inv.append inv append (-inv[MOD % i] * (MOD // i)) % MOD -inv[MOD % i] * (MOD // i) -inv[MOD % i] inv[MOD % i] inv MOD % i MOD i MOD // i MOD i MOD facinv.append((facinv[-1] * inv[-1]) % MOD) facinv.append facinv append (facinv[-1] * inv[-1]) % MOD facinv[-1] * inv[-1] facinv[-1] facinv -1 inv[-1] inv -1 MOD def fac(n, a):
    ans = 1
    for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
    return ans fac ans = 1 ans 1 for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
     i range(a) range a ans *= n ans n ans %= MOD ans MOD n -= 1 n 1 return ans ans n n a a def cmb(n, r):
    if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
    return fac[n] * facinv[r] * facinv[n - r] % MOD cmb if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
     r < 0 or r > n r < 0 r 0 r > n r n return 0 0 return fac[n] * facinv[r] * facinv[n - r] % MOD fac[n] * facinv[r] * facinv[n - r] % MOD fac[n] * facinv[r] * facinv[n - r] fac[n] * facinv[r] fac[n] fac n facinv[r] facinv r facinv[n - r] facinv n - r n r MOD n n r r def main():
    n, a, b = map(int, sys.stdin.readline().rstrip().split())

    # 全種類
    ans = pow(2, n, MOD) - 1  # -1 : 全部選ばない場合
    ans %= MOD

    # a種類になる場合
    ans -= fac(n, a) * facinv[a]
    ans %= MOD

    ans -= fac(n, b) * facinv[b]
    ans %= MOD

    print(ans) main n, a, b = map(int, sys.stdin.readline().rstrip().split()) n map(int, sys.stdin.readline().rstrip().split()) map int sys.stdin.readline().rstrip().split() sys.stdin.readline().rstrip().split sys.stdin.readline().rstrip() sys.stdin.readline().rstrip sys.stdin.readline() sys.stdin.readline sys.stdin sys stdin readline rstrip split a b ans = pow(2, n, MOD) - 1 ans pow(2, n, MOD) - 1 pow(2, n, MOD) pow 2 n MOD 1 ans %= MOD ans MOD ans -= fac(n, a) * facinv[a] ans fac(n, a) * facinv[a] fac(n, a) fac n a facinv[a] facinv a ans %= MOD ans MOD ans -= fac(n, b) * facinv[b] ans fac(n, b) * facinv[b] fac(n, b) fac n b facinv[b] facinv b ans %= MOD ans MOD print(ans) print ans main() main N_MAX = 200000 + 5 200000 + 5 N_MAX MOD = 10**9 + 7 10**9 + 7 MOD fac = [1, 1] [1, 1] fac def fac(n, a):
    ans = 1
    for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
    return ans def fac(n, a):
    ans = 1
    for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
    return ans fac facinv = [1, 1] [1, 1] facinv INF = 10**9 + 7 10**9 + 7 INF def cmb(n, r):
    if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
    return fac[n] * facinv[r] * facinv[n - r] % MOD def cmb(n, r):
    if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
    return fac[n] * facinv[r] * facinv[n - r] % MOD cmb MOD = 10**9 + 7 10**9 + 7 MOD inv = [0, 1] [0, 1] inv def main():
    n, a, b = map(int, sys.stdin.readline().rstrip().split())

    # 全種類
    ans = pow(2, n, MOD) - 1  # -1 : 全部選ばない場合
    ans %= MOD

    # a種類になる場合
    ans -= fac(n, a) * facinv[a]
    ans %= MOD

    ans -= fac(n, b) * facinv[b]
    ans %= MOD

    print(ans) def main():
    n, a, b = map(int, sys.stdin.readline().rstrip().split())

    # 全種類
    ans = pow(2, n, MOD) - 1  # -1 : 全部選ばない場合
    ans %= MOD

    # a種類になる場合
    ans -= fac(n, a) * facinv[a]
    ans %= MOD

    ans -= fac(n, b) * facinv[b]
    ans %= MOD

    print(ans) main N_MAX = 2 * 10**5 2 * 10**5 N_MAX
import sys

N_MAX = 200000 + 5
INF = 10**9 + 7
sys.setrecursionlimit(N_MAX)
MOD = 10**9 + 7

# ## COMBINATION (MOD) ## #
MOD = 10**9 + 7  # , N = 2*10**5 で 0.3s
N_MAX = 2 * 10**5  # 問題サイズに合わせて変えておく

fac = [1, 1]  # 元テーブル
facinv = [1, 1]  # 逆元テーブル
inv = [0, 1]  # 逆元テーブル計算用テーブル

for i in range(2, N_MAX + 1):
    fac.append((fac[-1] * i) % MOD)
    inv.append((-inv[MOD % i] * (MOD // i)) % MOD)
    facinv.append((facinv[-1] * inv[-1]) % MOD)


def fac(n, a):
    ans = 1
    for i in range(a):
        ans *= n
        ans %= MOD
        n -= 1
    return ans


def cmb(n, r):
    if (r < 0 or r > n):
        return 0
    # r = min(r, n-r)
    return fac[n] * facinv[r] * facinv[n - r] % MOD


def main():
    n, a, b = map(int, sys.stdin.readline().rstrip().split())

    # 全種類
    ans = pow(2, n, MOD) - 1  # -1 : 全部選ばない場合
    ans %= MOD

    # a種類になる場合
    ans -= fac(n, a) * facinv[a]
    ans %= MOD

    ans -= fac(n, b) * facinv[b]
    ans %= MOD

    print(ans)


main()