n,a,b = map(int,input().split())

mod = 10**9+7
total = pow(2,n,mod) - 1 # 制約なしの全パターン_n**2-1※'-1'は0本の花束

# n個からr個を選択した時のパターン総数_組み合わせ重複なし
# n! / (r! * (n-r)!) → nが大き過ぎて出来ない →変形→ n*(n-1)*･･･(n-r+1)/r! ↓関数化
def nCr(n, r, mod):
    numerator=1 #分子_n*(n-1)*･･･(n-r+1)
    for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

    denominator=1 #分母_r!
    for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
    return (numerator * pow(denominator,mod-2,mod)) % mod
    
ans = (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod
print(ans) 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 total = pow(2,n,mod) - 1 total pow(2,n,mod) - 1 pow(2,n,mod) pow 2 n mod 1 def nCr(n, r, mod):
    numerator=1 #分子_n*(n-1)*･･･(n-r+1)
    for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

    denominator=1 #分母_r!
    for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
    return (numerator * pow(denominator,mod-2,mod)) % mod
     nCr numerator=1 numerator 1 for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

     i range(n-r+1, n+1) range n-r+1 n-r n r 1 n+1 n 1 numerator = (numerator*i) % mod numerator (numerator*i) % mod numerator*i numerator i mod denominator=1 denominator 1 for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
     j range(1,r+1) range 1 r+1 r 1 denominator = (denominator*j) % mod denominator (denominator*j) % mod denominator*j denominator j mod return (numerator * pow(denominator,mod-2,mod)) % mod (numerator * pow(denominator,mod-2,mod)) % mod numerator * pow(denominator,mod-2,mod) numerator pow(denominator,mod-2,mod) pow denominator mod-2 mod 2 mod mod n n r r mod mod ans = (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod ans (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod total - nCr(n,a,mod) - nCr(n,b,mod) total - nCr(n,a,mod) total nCr(n,a,mod) nCr n a mod nCr(n,b,mod) nCr n b mod mod print(ans) print ans b = map(int,input().split()) map(int,input().split()) b a,b = map(int,input().split()) map(int,input().split()) a total = pow(2,n,mod) - 1 pow(2,n,mod) - 1 total n,a,b = map(int,input().split()) map(int,input().split()) n mod = 10**9+7 10**9+7 mod ans = (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod ans def nCr(n, r, mod):
    numerator=1 #分子_n*(n-1)*･･･(n-r+1)
    for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

    denominator=1 #分母_r!
    for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
    return (numerator * pow(denominator,mod-2,mod)) % mod
     def nCr(n, r, mod):
    numerator=1 #分子_n*(n-1)*･･･(n-r+1)
    for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

    denominator=1 #分母_r!
    for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
    return (numerator * pow(denominator,mod-2,mod)) % mod
     nCr
n,a,b = map(int,input().split())

mod = 10**9+7
total = pow(2,n,mod) - 1 # 制約なしの全パターン_n**2-1※'-1'は0本の花束

# n個からr個を選択した時のパターン総数_組み合わせ重複なし
# n! / (r! * (n-r)!) → nが大き過ぎて出来ない →変形→ n*(n-1)*･･･(n-r+1)/r! ↓関数化
def nCr(n, r, mod):
    numerator=1 #分子_n*(n-1)*･･･(n-r+1)
    for i in range(n-r+1, n+1):
        numerator = (numerator*i) % mod

    denominator=1 #分母_r!
    for j in range(1,r+1):
        denominator = (denominator*j) % mod
    # 剰余の計算において割るとよくない → 割るのではなく逆元を掛ける
    # フェルマーの小定理_pが素数なら整数aのmod pにおける逆元は a**(p-2) ※aとpは互いに素
    return (numerator * pow(denominator,mod-2,mod)) % mod
    
ans = (total - nCr(n,a,mod) - nCr(n,b,mod)) % mod
print(ans)