m = 10**9+7
n,a,b = map(int,input().split())
def c(k):
  v = 1
  w = 1
  for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
  return (v*pow(w,m-2,m)%m)
print((pow(2,n,m)-1-c(a)-c(b))%m) m = 10**9+7 m 10**9+7 10**9 10 9 7 n,a,b = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split a b def c(k):
  v = 1
  w = 1
  for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
  return (v*pow(w,m-2,m)%m) c v = 1 v 1 w = 1 w 1 for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
   i range(k) range k v = v*(n-i)%m v v*(n-i)%m v*(n-i) v n-i n i m w = w*(i+1)%m w w*(i+1)%m w*(i+1) w i+1 i 1 m return (v*pow(w,m-2,m)%m) v*pow(w,m-2,m)%m v*pow(w,m-2,m) v pow(w,m-2,m) pow w m-2 m 2 m m k k print((pow(2,n,m)-1-c(a)-c(b))%m) print (pow(2,n,m)-1-c(a)-c(b))%m pow(2,n,m)-1-c(a)-c(b) pow(2,n,m)-1-c(a) pow(2,n,m)-1 pow(2,n,m) pow 2 n m 1 c(a) c a c(b) c b m b = map(int,input().split()) map(int,input().split()) b def c(k):
  v = 1
  w = 1
  for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
  return (v*pow(w,m-2,m)%m) def c(k):
  v = 1
  w = 1
  for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
  return (v*pow(w,m-2,m)%m) c a,b = map(int,input().split()) map(int,input().split()) a m = 10**9+7 10**9+7 m n,a,b = map(int,input().split()) map(int,input().split()) n
m = 10**9+7
n,a,b = map(int,input().split())
def c(k):
  v = 1
  w = 1
  for i in range(k):
    v = v*(n-i)%m #n*(n-1)*...*(n-k+1) 分子
    w = w*(i+1)%m #1*2*...*k 分母
  #pow(w,m-2,m)はmod mの世界でのwの逆元
  return (v*pow(w,m-2,m)%m)
print((pow(2,n,m)-1-c(a)-c(b))%m)