p = 10**9+7
def pow(x,m):
    if m==0:
        return 1
    if m==1:
        return x
    if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p
n,a,b = map(int,input().split())
A = [1 for _ in range(2*10**5+1)]
for i in range(2,2*10**5+1):
    A[i] = (A[i-1]*i)%p
B = [1 for _ in range(2*10**5+1)]
B[2*10**5] = pow(A[2*10**5],p-2)
for i in range(2*10**5-1,1,-1):
    B[i] = (B[i+1]*(i+1))%p
cnt = pow(2,n)-1
cnt1 = 1
for i in range(a):
    cnt1 = (cnt1*(n-i))%p
cnt1 = (cnt1*B[a])%p
cnt2 = 1
for i in range(b):
    cnt2 = (cnt2*(n-i))%p
cnt2 = (cnt2*B[b])%p
cnt = (cnt-cnt1-cnt2)%p
print(cnt) p = 10**9+7 p 10**9+7 10**9 10 9 7 def pow(x,m):
    if m==0:
        return 1
    if m==1:
        return x
    if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p pow if m==0:
        return 1
     m==0 m 0 return 1 1 if m==1:
        return x
     m==1 m 1 return x x if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p m%2==0 m%2 m 2 0 return (pow(x,m//2)**2)%p (pow(x,m//2)**2)%p pow(x,m//2)**2 pow(x,m//2) pow x m//2 m 2 2 p return (x*(pow(x,(m-1)//2)**2)%p)%p (x*(pow(x,(m-1)//2)**2)%p)%p x*(pow(x,(m-1)//2)**2)%p x*(pow(x,(m-1)//2)**2) x pow(x,(m-1)//2)**2 pow(x,(m-1)//2) pow x (m-1)//2 m-1 m 1 2 2 p p x x m m n,a,b = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split a b 1 for _ in range(2*10**5+1) for _ in range(2*10**5+1) _ range(2*10**5+1) range 2*10**5+1 2*10**5 2 10**5 10 5 1 for _ in range(2*10**5+1) 1 A = [1 for _ in range(2*10**5+1)] A [1 for _ in range(2*10**5+1)] for i in range(2,2*10**5+1):
    A[i] = (A[i-1]*i)%p i range(2,2*10**5+1) range 2 2*10**5+1 2*10**5 2 10**5 10 5 1 A[i] = (A[i-1]*i)%p A[i] A i (A[i-1]*i)%p A[i-1]*i A[i-1] A i-1 i 1 i p 1 for _ in range(2*10**5+1) for _ in range(2*10**5+1) _ range(2*10**5+1) range 2*10**5+1 2*10**5 2 10**5 10 5 1 for _ in range(2*10**5+1) 1 B = [1 for _ in range(2*10**5+1)] B [1 for _ in range(2*10**5+1)] B[2*10**5] = pow(A[2*10**5],p-2) B[2*10**5] B 2*10**5 2 10**5 10 5 pow(A[2*10**5],p-2) pow A[2*10**5] A 2*10**5 2 10**5 10 5 p-2 p 2 for i in range(2*10**5-1,1,-1):
    B[i] = (B[i+1]*(i+1))%p i range(2*10**5-1,1,-1) range 2*10**5-1 2*10**5 2 10**5 10 5 1 1 -1 B[i] = (B[i+1]*(i+1))%p B[i] B i (B[i+1]*(i+1))%p B[i+1]*(i+1) B[i+1] B i+1 i 1 i+1 i 1 p cnt = pow(2,n)-1 cnt pow(2,n)-1 pow(2,n) pow 2 n 1 cnt1 = 1 cnt1 1 for i in range(a):
    cnt1 = (cnt1*(n-i))%p i range(a) range a cnt1 = (cnt1*(n-i))%p cnt1 (cnt1*(n-i))%p cnt1*(n-i) cnt1 n-i n i p cnt1 = (cnt1*B[a])%p cnt1 (cnt1*B[a])%p cnt1*B[a] cnt1 B[a] B a p cnt2 = 1 cnt2 1 for i in range(b):
    cnt2 = (cnt2*(n-i))%p i range(b) range b cnt2 = (cnt2*(n-i))%p cnt2 (cnt2*(n-i))%p cnt2*(n-i) cnt2 n-i n i p cnt2 = (cnt2*B[b])%p cnt2 (cnt2*B[b])%p cnt2*B[b] cnt2 B[b] B b p cnt = (cnt-cnt1-cnt2)%p cnt (cnt-cnt1-cnt2)%p cnt-cnt1-cnt2 cnt-cnt1 cnt cnt1 cnt2 p print(cnt) print cnt n,a,b = map(int,input().split()) map(int,input().split()) n cnt1 = (cnt1*B[a])%p (cnt1*B[a])%p cnt1 cnt2 = (cnt2*(n-i))%p (cnt2*(n-i))%p cnt2 cnt2 = (cnt2*B[b])%p (cnt2*B[b])%p cnt2 A = [1 for _ in range(2*10**5+1)] [1 for _ in range(2*10**5+1)] A p = 10**9+7 10**9+7 p B = [1 for _ in range(2*10**5+1)] [1 for _ in range(2*10**5+1)] B def pow(x,m):
    if m==0:
        return 1
    if m==1:
        return x
    if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p def pow(x,m):
    if m==0:
        return 1
    if m==1:
        return x
    if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p pow cnt = pow(2,n)-1 pow(2,n)-1 cnt cnt2 = 1 1 cnt2 cnt = (cnt-cnt1-cnt2)%p (cnt-cnt1-cnt2)%p cnt cnt1 = 1 1 cnt1 b = map(int,input().split()) map(int,input().split()) b a,b = map(int,input().split()) map(int,input().split()) a cnt1 = (cnt1*(n-i))%p (cnt1*(n-i))%p cnt1
p = 10**9+7
def pow(x,m):
    if m==0:
        return 1
    if m==1:
        return x
    if m%2==0:
        return (pow(x,m//2)**2)%p
    else:
        return (x*(pow(x,(m-1)//2)**2)%p)%p
n,a,b = map(int,input().split())
A = [1 for _ in range(2*10**5+1)]
for i in range(2,2*10**5+1):
    A[i] = (A[i-1]*i)%p
B = [1 for _ in range(2*10**5+1)]
B[2*10**5] = pow(A[2*10**5],p-2)
for i in range(2*10**5-1,1,-1):
    B[i] = (B[i+1]*(i+1))%p
cnt = pow(2,n)-1
cnt1 = 1
for i in range(a):
    cnt1 = (cnt1*(n-i))%p
cnt1 = (cnt1*B[a])%p
cnt2 = 1
for i in range(b):
    cnt2 = (cnt2*(n-i))%p
cnt2 = (cnt2*B[b])%p
cnt = (cnt-cnt1-cnt2)%p
print(cnt)