def factorial(a,n):
  # n*(n-1)*,,,,,*(n-a+1)
  ans=1
  for i in range(n,n-a,-1):
    ans=(ans*i)%M
  return ans


def pow(x, n):
  ans=1
  while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
  return ans


def main():
  ans=pow(2,N) - 1
  ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M
  ans+= 0 if ans>=0 else M
  ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M
  print(ans if ans>=0 else ans+M)
  
  
if __name__=='__main__':
  N, A, B = map(int, input().split())
  M = 10**9 + 7
  main() def factorial(a,n):
  # n*(n-1)*,,,,,*(n-a+1)
  ans=1
  for i in range(n,n-a,-1):
    ans=(ans*i)%M
  return ans factorial ans=1 ans 1 for i in range(n,n-a,-1):
    ans=(ans*i)%M
   i range(n,n-a,-1) range n n-a n a -1 ans=(ans*i)%M ans (ans*i)%M ans*i ans i M return ans ans a a n n def pow(x, n):
  ans=1
  while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
  return ans pow ans=1 ans 1 while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
   n if n % 2 == 1:
      ans = (ans*x)%M
     n % 2 == 1 n % 2 n 2 1 ans = (ans*x)%M ans (ans*x)%M ans*x ans x M x = (x*x)%M x (x*x)%M x*x x x M n >>= 1 n 1 return ans ans x x n n def main():
  ans=pow(2,N) - 1
  ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M
  ans+= 0 if ans>=0 else M
  ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M
  print(ans if ans>=0 else ans+M)
  
   main ans=pow(2,N) - 1 ans pow(2,N) - 1 pow(2,N) pow 2 N 1 ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M ans (factorial(A,N)*pow(factorial(A,A),M-2))%M factorial(A,N)*pow(factorial(A,A),M-2) factorial(A,N) factorial A N pow(factorial(A,A),M-2) pow factorial(A,A) factorial A A M-2 M 2 M ans+= 0 if ans>=0 else M ans 0 if ans>=0 else M ans>=0 ans 0 0 M ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M ans (factorial(B,N)*pow(factorial(B,B),M-2))%M factorial(B,N)*pow(factorial(B,B),M-2) factorial(B,N) factorial B N pow(factorial(B,B),M-2) pow factorial(B,B) factorial B B M-2 M 2 M print(ans if ans>=0 else ans+M) print ans if ans>=0 else ans+M ans>=0 ans 0 ans ans+M ans M if __name__=='__main__':
  N, A, B = map(int, input().split())
  M = 10**9 + 7
  main() __name__=='__main__' __name__ '__main__' N, A, B = map(int, input().split()) N map(int, input().split()) map int input().split() ().split () input split A B M = 10**9 + 7 M 10**9 + 7 10**9 10 9 7 main() main M = 10**9 + 7 10**9 + 7 M A, B = map(int, input().split()) map(int, input().split()) A def factorial(a,n):
  # n*(n-1)*,,,,,*(n-a+1)
  ans=1
  for i in range(n,n-a,-1):
    ans=(ans*i)%M
  return ans def factorial(a,n):
  # n*(n-1)*,,,,,*(n-a+1)
  ans=1
  for i in range(n,n-a,-1):
    ans=(ans*i)%M
  return ans factorial B = map(int, input().split()) map(int, input().split()) B def main():
  ans=pow(2,N) - 1
  ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M
  ans+= 0 if ans>=0 else M
  ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M
  print(ans if ans>=0 else ans+M)
  
   def main():
  ans=pow(2,N) - 1
  ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M
  ans+= 0 if ans>=0 else M
  ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M
  print(ans if ans>=0 else ans+M)
  
   main def pow(x, n):
  ans=1
  while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
  return ans def pow(x, n):
  ans=1
  while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
  return ans pow N, A, B = map(int, input().split()) map(int, input().split()) N
def factorial(a,n):
  # n*(n-1)*,,,,,*(n-a+1)
  ans=1
  for i in range(n,n-a,-1):
    ans=(ans*i)%M
  return ans


def pow(x, n):
  ans=1
  while n:
    if n % 2 == 1:
      ans = (ans*x)%M
    x = (x*x)%M
    n >>= 1
  return ans


def main():
  ans=pow(2,N) - 1
  ans-=(factorial(A,N)*pow(factorial(A,A),M-2))%M
  ans+= 0 if ans>=0 else M
  ans-=(factorial(B,N)*pow(factorial(B,B),M-2))%M
  print(ans if ans>=0 else ans+M)
  
  
if __name__=='__main__':
  N, A, B = map(int, input().split())
  M = 10**9 + 7
  main()
