import sys, bisect, math, itertools, string, queue, copy
import numpy as np
import scipy
from collections import Counter,defaultdict,deque
from itertools import permutations, combinations
from heapq import heappop, heappush
from fractions import gcd
input = sys.stdin.readline
sys.setrecursionlimit(10**8)
mod = 10**9+7
def inp(): return int(input())
def inpm(): return map(int,input().split())
def inpl(): return list(map(int, input().split()))
def inpls(): return list(input().split())
def inplm(n): return list(int(input()) for _ in range(n))
def inplL(n): return [list(input()) for _ in range(n)]
def inplT(n): return [tuple(input()) for _ in range(n)]
def inpll(n): return [list(map(int, input().split())) for _ in range(n)]
def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)])

n,a,b = inpm()

ret = (pow(2,n,mod) - 1)

modinv_table = [-1] * (max(a,b)+1)
modinv_table[1] = 1
for i in range(2, max(a,b)+1):
    modinv_table[i] = (-modinv_table[mod % i] * (mod // i)) % mod

def comb(n,r):
    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) % mod)
aa = comb(n,a)
bb = comb(n,b)

ret = (ret - aa - bb) % mod

print(ret) import sys, bisect, math, itertools, string, queue, copy sys bisect math itertools string queue copy import numpy as np numpy import scipy scipy from collections import Counter,defaultdict,deque from itertools import permutations, combinations from heapq import heappop, heappush from fractions import gcd input = sys.stdin.readline input sys.stdin.readline sys.stdin sys stdin readline sys.setrecursionlimit(10**8) sys.setrecursionlimit sys setrecursionlimit 10**8 10 8 mod = 10**9+7 mod 10**9+7 10**9 10 9 7 def inp(): return int(input()) inp def inpm(): return map(int,input().split()) inpm def inpl(): return list(map(int, input().split())) inpl def inpls(): return list(input().split()) inpls def inplm(n): return list(int(input()) for _ in range(n)) inplm n n list(input()) for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) list(input()) list input() input def inplL(n): return [list(input()) for _ in range(n)] inplL n n tuple(input()) for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) tuple(input()) tuple input() input def inplT(n): return [tuple(input()) for _ in range(n)] inplT n n list(map(int, input().split())) for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def inpll(n): return [list(map(int, input().split())) for _ in range(n)] inpll n n list(map(int, input().split())) for _ in range(n) for _ in range(n) _ range(n) range n for _ in range(n) list(map(int, input().split())) list map(int, input().split()) map int input().split() ().split () input split def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)]) inplls n n n,a,b = inpm() n inpm() inpm a b ret = (pow(2,n,mod) - 1) ret pow(2,n,mod) - 1 pow(2,n,mod) pow 2 n mod 1 modinv_table = [-1] * (max(a,b)+1) modinv_table [-1] * (max(a,b)+1) [-1] -1 max(a,b)+1 max(a,b) max a b 1 modinv_table[1] = 1 modinv_table[1] modinv_table 1 1 for i in range(2, max(a,b)+1):
    modinv_table[i] = (-modinv_table[mod % i] * (mod // i)) % mod i range(2, max(a,b)+1) range 2 max(a,b)+1 max(a,b) max a b 1 modinv_table[i] = (-modinv_table[mod % i] * (mod // i)) % mod modinv_table[i] modinv_table i (-modinv_table[mod % i] * (mod // i)) % mod -modinv_table[mod % i] * (mod // i) -modinv_table[mod % i] modinv_table[mod % i] modinv_table mod % i mod i mod // i mod i mod def comb(n,r):
    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) % mod) comb x = 1 x 1 y = 1 y 1 for i in range(r):
        x = x*(n-i)%mod #コンビネーションの分子
        y = y*(i+1)%mod #コンビネーションの分母
     i range(r) range r x = x*(n-i)%mod x x*(n-i)%mod x*(n-i) x n-i n i mod y = y*(i+1)%mod y y*(i+1)%mod y*(i+1) y i+1 i 1 mod return (x * pow(y, mod-2, mod) % mod) x * pow(y, mod-2, mod) % mod x * pow(y, mod-2, mod) x pow(y, mod-2, mod) pow y mod-2 mod 2 mod mod n n r r aa = comb(n,a) aa comb(n,a) comb n a bb = comb(n,b) bb comb(n,b) comb n b ret = (ret - aa - bb) % mod ret (ret - aa - bb) % mod ret - aa - bb ret - aa ret aa bb mod print(ret) print ret ret = (ret - aa - bb) % mod (ret - aa - bb) % mod ret mod = 10**9+7 10**9+7 mod def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)]) def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)]) inplls b = inpm() inpm() b def inpm(): return map(int,input().split()) def inpm(): return map(int,input().split()) inpm def inpls(): return list(input().split()) def inpls(): return list(input().split()) inpls aa = comb(n,a) comb(n,a) aa bb = comb(n,b) comb(n,b) bb n,a,b = inpm() inpm() n ret = (pow(2,n,mod) - 1) pow(2,n,mod) - 1 ret input = sys.stdin.readline sys.stdin.readline input a,b = inpm() inpm() a def inplT(n): return [tuple(input()) for _ in range(n)] def inplT(n): return [tuple(input()) for _ in range(n)] inplT def inpll(n): return [list(map(int, input().split())) for _ in range(n)] def inpll(n): return [list(map(int, input().split())) for _ in range(n)] inpll def inplL(n): return [list(input()) for _ in range(n)] def inplL(n): return [list(input()) for _ in range(n)] inplL def inpl(): return list(map(int, input().split())) def inpl(): return list(map(int, input().split())) inpl modinv_table = [-1] * (max(a,b)+1) [-1] * (max(a,b)+1) modinv_table def inplm(n): return list(int(input()) for _ in range(n)) def inplm(n): return list(int(input()) for _ in range(n)) inplm def comb(n,r):
    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) % mod) def comb(n,r):
    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) % mod) comb def inp(): return int(input()) def inp(): return int(input()) inp
import sys, bisect, math, itertools, string, queue, copy
import numpy as np
import scipy
from collections import Counter,defaultdict,deque
from itertools import permutations, combinations
from heapq import heappop, heappush
from fractions import gcd
input = sys.stdin.readline
sys.setrecursionlimit(10**8)
mod = 10**9+7
def inp(): return int(input())
def inpm(): return map(int,input().split())
def inpl(): return list(map(int, input().split()))
def inpls(): return list(input().split())
def inplm(n): return list(int(input()) for _ in range(n))
def inplL(n): return [list(input()) for _ in range(n)]
def inplT(n): return [tuple(input()) for _ in range(n)]
def inpll(n): return [list(map(int, input().split())) for _ in range(n)]
def inplls(n): return sorted([list(map(int, input().split())) for _ in range(n)])

n,a,b = inpm()

ret = (pow(2,n,mod) - 1)

modinv_table = [-1] * (max(a,b)+1)
modinv_table[1] = 1
for i in range(2, max(a,b)+1):
    modinv_table[i] = (-modinv_table[mod % i] * (mod // i)) % mod

def comb(n,r):
    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) % mod)
aa = comb(n,a)
bb = comb(n,b)

ret = (ret - aa - bb) % mod

print(ret)