#coding:utf-8
import sys,os
sys.setrecursionlimit(10**6)
write = sys.stdout.write
dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0
def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    n,a,b = LMIIS()
    def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
    print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD)

    
if __name__ == '__main__':
    main() import sys,os sys os sys.setrecursionlimit(10**6) sys.setrecursionlimit sys setrecursionlimit 10**6 10 6 write = sys.stdout.write write sys.stdout.write sys.stdout sys stdout write dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0 dbg (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0 'TERM_PROGRAM' in os.environ 'TERM_PROGRAM' os.environ os environ lambda *something: print(*something) print(*something) print *something something *something lambda *x: 0 0 *x def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    n,a,b = LMIIS()
    def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
    print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD)

     main input = lambda: given().rstrip() input lambda: given().rstrip() given().rstrip() ().rstrip () given rstrip LMIIS = lambda: list(map(int,input().split())) LMIIS lambda: list(map(int,input().split())) list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split II = lambda: int(input()) II lambda: int(input()) int(input()) int input() input LMIIS() for _ in range(x) for _ in range(x) _ range(x) range x for _ in range(x) LMIIS() LMIIS XLMIIS = lambda x: [LMIIS() for _ in range(x)] XLMIIS lambda x: [LMIIS() for _ in range(x)] [LMIIS() for _ in range(x)] x YN = lambda c : print('Yes') if c else print('No') YN lambda c : print('Yes') if c else print('No') print('Yes') if c else print('No') c print('Yes') print 'Yes' print('No') print 'No' c MOD = 10**9+7 MOD 10**9+7 10**9 10 9 7 n,a,b = LMIIS() n LMIIS() LMIIS a b def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
     cmb if r == 0:
            return 0
         r == 0 r 0 return 0 0 res = 1 res 1 r = min(r,n-r) r min(r,n-r) min r n-r n r for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
         i range(n-r+1,n+1) range n-r+1 n-r n r 1 n+1 n 1 res *= i res i res %= MOD res MOD for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
         i range(1,r+1) range 1 r+1 r 1 res *= pow(i,(MOD-2),MOD) res pow(i,(MOD-2),MOD) pow i MOD-2 MOD 2 MOD res %= MOD res MOD return res res n n r r print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD) print (pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1 pow(2,n,MOD)-cmb(n,a)-cmb(n,b) pow(2,n,MOD)-cmb(n,a) pow(2,n,MOD) pow 2 n MOD cmb(n,a) cmb n a cmb(n,b) cmb n b 1 MOD given=sys.stdin.readline given sys.stdin.readline sys.stdin sys stdin readline if __name__ == '__main__':
    main() __name__ == '__main__' __name__ '__main__' main() main write = sys.stdout.write sys.stdout.write write def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    n,a,b = LMIIS()
    def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
    print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD)

     def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    n,a,b = LMIIS()
    def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
    print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD)

     main dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0 (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0 dbg
#coding:utf-8
import sys,os
sys.setrecursionlimit(10**6)
write = sys.stdout.write
dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in os.environ else lambda *x: 0
def main(given=sys.stdin.readline):
    input = lambda: given().rstrip()
    LMIIS = lambda: list(map(int,input().split()))
    II = lambda: int(input())
    XLMIIS = lambda x: [LMIIS() for _ in range(x)]
    YN = lambda c : print('Yes') if c else print('No')
    MOD = 10**9+7

    n,a,b = LMIIS()
    def cmb(n,r):
        if r == 0:
            return 0
        res = 1
        r = min(r,n-r)
        for i in range(n-r+1,n+1):
            res *= i
            res %= MOD
        for i in range(1,r+1):
            res *= pow(i,(MOD-2),MOD)
            res %= MOD
        return res
    print((pow(2,n,MOD)-cmb(n,a)-cmb(n,b)-1)%MOD)

    
if __name__ == '__main__':
    main()