n,a,b=list(map(int,input().split()))
#2^n-nCa-nCbを求めればいい。ただし100000007で割ったあまりでなくてはならない
#まずは2^nを求める
def pow(x,n,m):
  if n==0:
    return 1
  res=pow(x*x%m,n//2,m)
  if n%2==1:
    res=res*x%m
  return res

#コンビネーションを求める
c=max(a,b)
inv=[0 for i in range(c+1)]
finv=[0 for i in range(c+1)]
inv[1]=1
finv[0]=finv[1]=1
for i in range(2,c+1):
  #iの逆数を求める。
  #mod　p=1000000007の世界で逆元を求める
  #p=(p//a)*a+(p%a)
  #mod pをとると a=-(p//a)*(p%a)^-1
  inv[i]=1000000007-(1000000007//i)*inv[1000000007%i]%1000000007
  finv[i]=finv[i-1]*inv[i]%1000000007
def kaizyou(k):
  num=1
  for i in range(n-k+1,n+1):
    num=num*i%1000000007
  return num

def combinations(k):
  return kaizyou(k)*finv[k]%1000000007

print((pow(2,n,1000000007)-combinations(a)-combinations(b)-1)%1000000007)

  
  
   n,a,b=list(map(int,input().split())) n list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split a b def pow(x,n,m):
  if n==0:
    return 1
  res=pow(x*x%m,n//2,m)
  if n%2==1:
    res=res*x%m
  return res

#コンビネーションを求める pow if n==0:
    return 1
   n==0 n 0 return 1 1 res=pow(x*x%m,n//2,m) res pow(x*x%m,n//2,m) pow x*x%m x*x x x m n//2 n 2 m if n%2==1:
    res=res*x%m
   n%2==1 n%2 n 2 1 res=res*x%m res res*x%m res*x res x m return res res x x n n m m c=max(a,b) c max(a,b) max a b 0 for i in range(c+1) for i in range(c+1) i range(c+1) range c+1 c 1 for i in range(c+1) 0 inv=[0 for i in range(c+1)] inv [0 for i in range(c+1)] 0 for i in range(c+1) for i in range(c+1) i range(c+1) range c+1 c 1 for i in range(c+1) 0 finv=[0 for i in range(c+1)] finv [0 for i in range(c+1)] inv[1]=1 inv[1] inv 1 1 finv[0]=finv[1]=1 finv[0] finv 0 1 =finv[1]=1 finv[1] finv 1 1 for i in range(2,c+1):
  #iの逆数を求める。
  #mod　p=1000000007の世界で逆元を求める
  #p=(p//a)*a+(p%a)
  #mod pをとると a=-(p//a)*(p%a)^-1
  inv[i]=1000000007-(1000000007//i)*inv[1000000007%i]%1000000007
  finv[i]=finv[i-1]*inv[i]%1000000007 i range(2,c+1) range 2 c+1 c 1 inv[i]=1000000007-(1000000007//i)*inv[1000000007%i]%1000000007 inv[i] inv i 1000000007-(1000000007//i)*inv[1000000007%i]%1000000007 1000000007 (1000000007//i)*inv[1000000007%i]%1000000007 (1000000007//i)*inv[1000000007%i] 1000000007//i 1000000007 i inv[1000000007%i] inv 1000000007%i 1000000007 i 1000000007 finv[i]=finv[i-1]*inv[i]%1000000007 finv[i] finv i finv[i-1]*inv[i]%1000000007 finv[i-1]*inv[i] finv[i-1] finv i-1 i 1 inv[i] inv i 1000000007 def kaizyou(k):
  num=1
  for i in range(n-k+1,n+1):
    num=num*i%1000000007
  return num kaizyou num=1 num 1 for i in range(n-k+1,n+1):
    num=num*i%1000000007
   i range(n-k+1,n+1) range n-k+1 n-k n k 1 n+1 n 1 num=num*i%1000000007 num num*i%1000000007 num*i num i 1000000007 return num num k k def combinations(k):
  return kaizyou(k)*finv[k]%1000000007 combinations return kaizyou(k)*finv[k]%1000000007 kaizyou(k)*finv[k]%1000000007 kaizyou(k)*finv[k] kaizyou(k) kaizyou k finv[k] finv k 1000000007 k k print((pow(2,n,1000000007)-combinations(a)-combinations(b)-1)%1000000007) print (pow(2,n,1000000007)-combinations(a)-combinations(b)-1)%1000000007 pow(2,n,1000000007)-combinations(a)-combinations(b)-1 pow(2,n,1000000007)-combinations(a)-combinations(b) pow(2,n,1000000007)-combinations(a) pow(2,n,1000000007) pow 2 n 1000000007 combinations(a) combinations a combinations(b) combinations b 1 1000000007 b=list(map(int,input().split())) list(map(int,input().split())) b finv=[0 for i in range(c+1)] [0 for i in range(c+1)] finv def pow(x,n,m):
  if n==0:
    return 1
  res=pow(x*x%m,n//2,m)
  if n%2==1:
    res=res*x%m
  return res

#コンビネーションを求める def pow(x,n,m):
  if n==0:
    return 1
  res=pow(x*x%m,n//2,m)
  if n%2==1:
    res=res*x%m
  return res

#コンビネーションを求める pow def kaizyou(k):
  num=1
  for i in range(n-k+1,n+1):
    num=num*i%1000000007
  return num def kaizyou(k):
  num=1
  for i in range(n-k+1,n+1):
    num=num*i%1000000007
  return num kaizyou def combinations(k):
  return kaizyou(k)*finv[k]%1000000007 def combinations(k):
  return kaizyou(k)*finv[k]%1000000007 combinations n,a,b=list(map(int,input().split())) list(map(int,input().split())) n c=max(a,b) max(a,b) c inv=[0 for i in range(c+1)] [0 for i in range(c+1)] inv a,b=list(map(int,input().split())) list(map(int,input().split())) a
n,a,b=list(map(int,input().split()))
#2^n-nCa-nCbを求めればいい。ただし100000007で割ったあまりでなくてはならない
#まずは2^nを求める
def pow(x,n,m):
  if n==0:
    return 1
  res=pow(x*x%m,n//2,m)
  if n%2==1:
    res=res*x%m
  return res

#コンビネーションを求める
c=max(a,b)
inv=[0 for i in range(c+1)]
finv=[0 for i in range(c+1)]
inv[1]=1
finv[0]=finv[1]=1
for i in range(2,c+1):
  #iの逆数を求める。
  #mod　p=1000000007の世界で逆元を求める
  #p=(p//a)*a+(p%a)
  #mod pをとると a=-(p//a)*(p%a)^-1
  inv[i]=1000000007-(1000000007//i)*inv[1000000007%i]%1000000007
  finv[i]=finv[i-1]*inv[i]%1000000007
def kaizyou(k):
  num=1
  for i in range(n-k+1,n+1):
    num=num*i%1000000007
  return num

def combinations(k):
  return kaizyou(k)*finv[k]%1000000007

print((pow(2,n,1000000007)-combinations(a)-combinations(b)-1)%1000000007)

  
  
  
