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

def comb(N,x):
    numerator = 1
    for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
    denominator = 1
    for j in range(1,x+1):
        denominator = denominator *j%MOD
    d = pow(denominator,MOD-2,MOD)
    return (numerator*d)%MOD


#実際に使うときは、MOD=10000007 などの剰余計算を組み込んで使うこと！
def repeated_square(x,n):
    #nを2進数で表して順序反転
    bit_n=bin(n)[2:][::-1]

    ans=1
    ni=x

    if(bit_n[0]=="1"):
        ans*=ni

    for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

    return ans

alln=(repeated_square(2, n)-1)%MOD
print((alln-comb(n, a)-comb(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  = 1000000007 MOD 1000000007 def comb(N,x):
    numerator = 1
    for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
    denominator = 1
    for j in range(1,x+1):
        denominator = denominator *j%MOD
    d = pow(denominator,MOD-2,MOD)
    return (numerator*d)%MOD


#実際に使うときは、MOD=10000007 などの剰余計算を組み込んで使うこと！ comb numerator = 1 numerator 1 for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
     i range(N-x+1,N+1) range N-x+1 N-x N x 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,x+1):
        denominator = denominator *j%MOD
     j range(1,x+1) range 1 x+1 x 1 denominator = denominator *j%MOD denominator denominator *j%MOD denominator *j denominator j MOD d = pow(denominator,MOD-2,MOD) d pow(denominator,MOD-2,MOD) pow denominator MOD-2 MOD 2 MOD return (numerator*d)%MOD (numerator*d)%MOD numerator*d numerator d MOD N N x x def repeated_square(x,n):
    #nを2進数で表して順序反転
    bit_n=bin(n)[2:][::-1]

    ans=1
    ni=x

    if(bit_n[0]=="1"):
        ans*=ni

    for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

    return ans repeated_square bit_n=bin(n)[2:][::-1] bit_n bin(n)[2:][::-1] [2:] (n) bin n 2: 2 ::-1 -1 ans=1 ans 1 ni=x ni x if(bit_n[0]=="1"):
        ans*=ni

     bit_n[0]=="1" bit_n[0] bit_n 0 "1" ans*=ni ans ni for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

     i range(1,len(bit_n)) range 1 len(bit_n) len bit_n ni=((ni%MOD)*(ni%MOD))%MOD ni ((ni%MOD)*(ni%MOD))%MOD (ni%MOD)*(ni%MOD) ni%MOD ni MOD ni%MOD ni MOD MOD if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

     bit_n[i]=="1" bit_n[i] bit_n i "1" ans=((ans%MOD)*(ni%MOD))%MOD ans ((ans%MOD)*(ni%MOD))%MOD (ans%MOD)*(ni%MOD) ans%MOD ans MOD ni%MOD ni MOD MOD return ans ans x x n n alln=(repeated_square(2, n)-1)%MOD alln (repeated_square(2, n)-1)%MOD repeated_square(2, n)-1 repeated_square(2, n) repeated_square 2 n 1 MOD print((alln-comb(n, a)-comb(n, b))%MOD) print (alln-comb(n, a)-comb(n, b))%MOD alln-comb(n, a)-comb(n, b) alln-comb(n, a) alln comb(n, a) comb n a comb(n, b) comb n b MOD def comb(N,x):
    numerator = 1
    for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
    denominator = 1
    for j in range(1,x+1):
        denominator = denominator *j%MOD
    d = pow(denominator,MOD-2,MOD)
    return (numerator*d)%MOD


#実際に使うときは、MOD=10000007 などの剰余計算を組み込んで使うこと！ def comb(N,x):
    numerator = 1
    for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
    denominator = 1
    for j in range(1,x+1):
        denominator = denominator *j%MOD
    d = pow(denominator,MOD-2,MOD)
    return (numerator*d)%MOD


#実際に使うときは、MOD=10000007 などの剰余計算を組み込んで使うこと！ comb n,a,b=map(int,input().split()) map(int,input().split()) n alln=(repeated_square(2, n)-1)%MOD (repeated_square(2, n)-1)%MOD alln b=map(int,input().split()) map(int,input().split()) b a,b=map(int,input().split()) map(int,input().split()) a def repeated_square(x,n):
    #nを2進数で表して順序反転
    bit_n=bin(n)[2:][::-1]

    ans=1
    ni=x

    if(bit_n[0]=="1"):
        ans*=ni

    for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

    return ans def repeated_square(x,n):
    #nを2進数で表して順序反転
    bit_n=bin(n)[2:][::-1]

    ans=1
    ni=x

    if(bit_n[0]=="1"):
        ans*=ni

    for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

    return ans repeated_square MOD  = 1000000007 1000000007 MOD
n,a,b=map(int,input().split())
MOD  = 1000000007

def comb(N,x):
    numerator = 1
    for i in range(N-x+1,N+1):
        numerator = numerator *i%MOD
    denominator = 1
    for j in range(1,x+1):
        denominator = denominator *j%MOD
    d = pow(denominator,MOD-2,MOD)
    return (numerator*d)%MOD


#実際に使うときは、MOD=10000007 などの剰余計算を組み込んで使うこと！
def repeated_square(x,n):
    #nを2進数で表して順序反転
    bit_n=bin(n)[2:][::-1]

    ans=1
    ni=x

    if(bit_n[0]=="1"):
        ans*=ni

    for i in range(1,len(bit_n)):
        ni=((ni%MOD)*(ni%MOD))%MOD

        #i桁目が1なら、x^(2^i)を加える
        if(bit_n[i]=="1"):
            ans=((ans%MOD)*(ni%MOD))%MOD

    return ans

alln=(repeated_square(2, n)-1)%MOD
print((alln-comb(n, a)-comb(n, b))%MOD)
