n,a,b=map(int,input().split())
MOD=10**9+7
def inv(a):
  return pow(a,MOD-2,MOD)

def choose(n,r):
  if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD

def pow_k(x,n):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
    return K*x%MOD 

print((pow_k(2,n)-1-choose(n,a)-choose(n,b))%MOD) n,a,b=map(int,input().split()) n 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 def inv(a):
  return pow(a,MOD-2,MOD) inv return pow(a,MOD-2,MOD) pow(a,MOD-2,MOD) pow a MOD-2 MOD 2 MOD a a def choose(n,r):
  if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD choose if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD r==0 or r==n r==0 r 0 r==n r n return 1 1 A=B=1 A 1 =B=1 B 1 ls_A=[1] ls_A [1] 1 ls_B=[1] ls_B [1] 1 for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
     i range(r) range r A=ls_A[i]*(n-i)%MOD A ls_A[i]*(n-i)%MOD ls_A[i]*(n-i) ls_A[i] ls_A i n-i n i MOD ls_A.append(A) ls_A.append ls_A append A B=ls_B[i]*(i+1)%MOD B ls_B[i]*(i+1)%MOD ls_B[i]*(i+1) ls_B[i] ls_B i i+1 i 1 MOD ls_B.append(B) ls_B.append ls_B append B return ls_A[r]*inv(ls_B[r])%MOD ls_A[r]*inv(ls_B[r])%MOD ls_A[r]*inv(ls_B[r]) ls_A[r] ls_A r inv(ls_B[r]) inv ls_B[r] ls_B r MOD n n r r def pow_k(x,n):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
    return K*x%MOD  pow_k if n==0:
        return 1
     n==0 n 0 return 1 1 K=1 K 1 while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
     n>1 n 1 if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
     n%2 != 0 n%2 n 2 0 K=K*x%MOD K K*x%MOD K*x K x MOD x=x**2%MOD x x**2%MOD x**2 x 2 MOD n=(n-1)//2 n (n-1)//2 n-1 n 1 2 x=x**2%MOD x x**2%MOD x**2 x 2 MOD n=n//2%MOD n n//2%MOD n//2 n 2 MOD return K*x%MOD K*x%MOD K*x K x MOD x x n n print((pow_k(2,n)-1-choose(n,a)-choose(n,b))%MOD) print (pow_k(2,n)-1-choose(n,a)-choose(n,b))%MOD pow_k(2,n)-1-choose(n,a)-choose(n,b) pow_k(2,n)-1-choose(n,a) pow_k(2,n)-1 pow_k(2,n) pow_k 2 n 1 choose(n,a) choose n a choose(n,b) choose n b MOD def inv(a):
  return pow(a,MOD-2,MOD) def inv(a):
  return pow(a,MOD-2,MOD) inv b=map(int,input().split()) map(int,input().split()) b a,b=map(int,input().split()) map(int,input().split()) a def pow_k(x,n):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
    return K*x%MOD  def pow_k(x,n):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
    return K*x%MOD  pow_k def choose(n,r):
  if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD def choose(n,r):
  if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD choose n,a,b=map(int,input().split()) map(int,input().split()) n MOD=10**9+7 10**9+7 MOD
n,a,b=map(int,input().split())
MOD=10**9+7
def inv(a):
  return pow(a,MOD-2,MOD)

def choose(n,r):
  if r==0 or r==n:
    return 1
  else:
    A=B=1
    ls_A=[1]
    ls_B=[1]
    for i in range(r):
      A=ls_A[i]*(n-i)%MOD
      ls_A.append(A)
      B=ls_B[i]*(i+1)%MOD
      ls_B.append(B)
    return ls_A[r]*inv(ls_B[r])%MOD

def pow_k(x,n):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2 != 0:
            K=K*x%MOD
            x=x**2%MOD
            n=(n-1)//2
        else:
            x=x**2%MOD
            n=n//2%MOD
    return K*x%MOD 

print((pow_k(2,n)-1-choose(n,a)-choose(n,b))%MOD)