# ABC156 D

n,a,b=map(int,input().split())
p=10**9+7



def nCr_init(L,p):
    for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p


def pow_k(x,n,p=10**9+7):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
    return (K*x)%p


nck=[0]*(b+10)
inv=[1]*(b+15)
nck[0]=1

nCr_init(b+10,p)
for i in range(b+5):
    nck[i+1]=(nck[i]*(n-i)*inv[i+1])%p

print((pow_k(2,n,p)-nck[a]-nck[b]-1)%p) n,a,b=map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split a b p=10**9+7 p 10**9+7 10**9 10 9 7 def nCr_init(L,p):
    for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p nCr_init for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p i range(L+1) range L+1 L 1 if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p i<=1 i 1 inv[i]=1 inv[i] inv i 1 inv[i]=(p-inv[p%i]*(p//i))%p inv[i] inv i (p-inv[p%i]*(p//i))%p p-inv[p%i]*(p//i) p inv[p%i]*(p//i) inv[p%i] inv p%i p i p//i p i p L L p p def pow_k(x,n,p=10**9+7):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
    return (K*x)%p pow_k if n==0:
        return 1
     n==0 n 0 return 1 1 K=1 K 1 while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
     n>1 n 1 if n%2!=0:
            K=(K*x)%p
         n%2!=0 n%2 n 2 0 K=(K*x)%p K (K*x)%p K*x K x p x=(x*x)%p x (x*x)%p x*x x x p n//=2 n 2 return (K*x)%p (K*x)%p K*x K x p x x n n p=10**9+7 p 10**9+7 10**9 10 9 7 nck=[0]*(b+10) nck [0]*(b+10) [0] 0 b+10 b 10 inv=[1]*(b+15) inv [1]*(b+15) [1] 1 b+15 b 15 nck[0]=1 nck[0] nck 0 1 nCr_init(b+10,p) nCr_init b+10 b 10 p for i in range(b+5):
    nck[i+1]=(nck[i]*(n-i)*inv[i+1])%p i range(b+5) range b+5 b 5 nck[i+1]=(nck[i]*(n-i)*inv[i+1])%p nck[i+1] nck i+1 i 1 (nck[i]*(n-i)*inv[i+1])%p nck[i]*(n-i)*inv[i+1] nck[i]*(n-i) nck[i] nck i n-i n i inv[i+1] inv i+1 i 1 p print((pow_k(2,n,p)-nck[a]-nck[b]-1)%p) print (pow_k(2,n,p)-nck[a]-nck[b]-1)%p pow_k(2,n,p)-nck[a]-nck[b]-1 pow_k(2,n,p)-nck[a]-nck[b] pow_k(2,n,p)-nck[a] pow_k(2,n,p) pow_k 2 n p nck[a] nck a nck[b] nck b 1 p n,a,b=map(int,input().split()) map(int,input().split()) n p=10**9+7 10**9+7 p def nCr_init(L,p):
    for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p def nCr_init(L,p):
    for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p nCr_init inv=[1]*(b+15) [1]*(b+15) inv def pow_k(x,n,p=10**9+7):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
    return (K*x)%p def pow_k(x,n,p=10**9+7):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
    return (K*x)%p pow_k nck=[0]*(b+10) [0]*(b+10) nck b=map(int,input().split()) map(int,input().split()) b a,b=map(int,input().split()) map(int,input().split()) a
# ABC156 D

n,a,b=map(int,input().split())
p=10**9+7



def nCr_init(L,p):
    for i in range(L+1):
        if i<=1:
            inv[i]=1
        else:
            inv[i]=(p-inv[p%i]*(p//i))%p


def pow_k(x,n,p=10**9+7):
    if n==0:
        return 1
    K=1
    while n>1:
        if n%2!=0:
            K=(K*x)%p
        x=(x*x)%p
        n//=2
    return (K*x)%p


nck=[0]*(b+10)
inv=[1]*(b+15)
nck[0]=1

nCr_init(b+10,p)
for i in range(b+5):
    nck[i+1]=(nck[i]*(n-i)*inv[i+1])%p

print((pow_k(2,n,p)-nck[a]-nck[b]-1)%p)