from math import ceil,floor,factorial,gcd,sqrt,log2,cos,sin,tan,acos,asin,atan,degrees,radians,pi,inf
from itertools import accumulate,groupby,permutations,combinations,product,combinations_with_replacement
from collections import deque,defaultdict,Counter
from bisect import bisect_left,bisect_right
from operator import itemgetter
from heapq import heapify,heappop,heappush
from queue import Queue,LifoQueue,PriorityQueue
from copy import deepcopy
from time import time
import string
import sys
sys.setrecursionlimit(10 ** 7)
def input() : return sys.stdin.readline().strip()
def INT()   : return int(input())
def MAP()   : return map(int,input().split())
def LIST()  : return list(MAP())

def pow_k(x, n, mod):
    if n == 0:
        return 1

    K = 1
    while n > 1:
        if n % 2 != 0:
            K *= x
        x = x * x % mod
        n //= 2

    return K * x % mod

n, a, b = MAP()
ans = pow_k(2,n,10**9+7) - 1

x0 = 1
y0 = 1
x1 = 1
y1 = 1
for i in range(1, max(a,b)+1):
    if i <= a:
        x0 = x0 * (n - i + 1) % (10**9+7)
        y0 = y0 * i % (10**9+7)
    if i <= b:
        x1 = x1 * (n - i + 1) % (10**9+7)
        y1 = y1 * i % (10**9+7)

ans -= x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7)
print(ans % (10**9+7)) from math import ceil,floor,factorial,gcd,sqrt,log2,cos,sin,tan,acos,asin,atan,degrees,radians,pi,inf from itertools import accumulate,groupby,permutations,combinations,product,combinations_with_replacement from collections import deque,defaultdict,Counter from bisect import bisect_left,bisect_right from operator import itemgetter from heapq import heapify,heappop,heappush from queue import Queue,LifoQueue,PriorityQueue from copy import deepcopy from time import time import string string import sys sys sys.setrecursionlimit(10 ** 7) sys.setrecursionlimit sys setrecursionlimit 10 ** 7 10 7 def input() : return sys.stdin.readline().strip() input def INT()   : return int(input()) INT def MAP()   : return map(int,input().split()) MAP def LIST()  : return list(MAP()) LIST def pow_k(x, n, mod):
    if n == 0:
        return 1

    K = 1
    while n > 1:
        if n % 2 != 0:
            K *= x
        x = x * x % mod
        n //= 2

    return K * x % mod 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 *= x
        x = x * x % mod
        n //= 2

     n > 1 n 1 if n % 2 != 0:
            K *= x
         n % 2 != 0 n % 2 n 2 0 K *= x K x x = x * x % mod x x * x % mod x * x x x mod n //= 2 n 2 return K * x % mod K * x % mod K * x K x mod x x n n mod mod n, a, b = MAP() n MAP() MAP a b ans = pow_k(2,n,10**9+7) - 1 ans pow_k(2,n,10**9+7) - 1 pow_k(2,n,10**9+7) pow_k 2 n 10**9+7 10**9 10 9 7 1 x0 = 1 x0 1 y0 = 1 y0 1 x1 = 1 x1 1 y1 = 1 y1 1 for i in range(1, max(a,b)+1):
    if i <= a:
        x0 = x0 * (n - i + 1) % (10**9+7)
        y0 = y0 * i % (10**9+7)
    if i <= b:
        x1 = x1 * (n - i + 1) % (10**9+7)
        y1 = y1 * i % (10**9+7) i range(1, max(a,b)+1) range 1 max(a,b)+1 max(a,b) max a b 1 if i <= a:
        x0 = x0 * (n - i + 1) % (10**9+7)
        y0 = y0 * i % (10**9+7)
     i <= a i a x0 = x0 * (n - i + 1) % (10**9+7) x0 x0 * (n - i + 1) % (10**9+7) x0 * (n - i + 1) x0 n - i + 1 n - i n i 1 10**9+7 10**9 10 9 7 y0 = y0 * i % (10**9+7) y0 y0 * i % (10**9+7) y0 * i y0 i 10**9+7 10**9 10 9 7 if i <= b:
        x1 = x1 * (n - i + 1) % (10**9+7)
        y1 = y1 * i % (10**9+7) i <= b i b x1 = x1 * (n - i + 1) % (10**9+7) x1 x1 * (n - i + 1) % (10**9+7) x1 * (n - i + 1) x1 n - i + 1 n - i n i 1 10**9+7 10**9 10 9 7 y1 = y1 * i % (10**9+7) y1 y1 * i % (10**9+7) y1 * i y1 i 10**9+7 10**9 10 9 7 ans -= x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7) ans x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7) x0*pow_k(y0,10**9+7-2,10**9+7) x0 pow_k(y0,10**9+7-2,10**9+7) pow_k y0 10**9+7-2 10**9+7 10**9 10 9 7 2 10**9+7 10**9 10 9 7 x1*pow_k(y1,10**9+7-2,10**9+7) x1 pow_k(y1,10**9+7-2,10**9+7) pow_k y1 10**9+7-2 10**9+7 10**9 10 9 7 2 10**9+7 10**9 10 9 7 print(ans % (10**9+7)) print ans % (10**9+7) ans 10**9+7 10**9 10 9 7 x0 = x0 * (n - i + 1) % (10**9+7) x0 * (n - i + 1) % (10**9+7) x0 y0 = y0 * i % (10**9+7) y0 * i % (10**9+7) y0 ans = pow_k(2,n,10**9+7) - 1 pow_k(2,n,10**9+7) - 1 ans def input() : return sys.stdin.readline().strip() def input() : return sys.stdin.readline().strip() input n, a, b = MAP() MAP() n x0 = 1 1 x0 def pow_k(x, n, mod):
    if n == 0:
        return 1

    K = 1
    while n > 1:
        if n % 2 != 0:
            K *= x
        x = x * x % mod
        n //= 2

    return K * x % mod def pow_k(x, n, mod):
    if n == 0:
        return 1

    K = 1
    while n > 1:
        if n % 2 != 0:
            K *= x
        x = x * x % mod
        n //= 2

    return K * x % mod pow_k def LIST()  : return list(MAP()) def LIST()  : return list(MAP()) LIST b = MAP() MAP() b x1 = 1 1 x1 def MAP()   : return map(int,input().split()) def MAP()   : return map(int,input().split()) MAP y1 = y1 * i % (10**9+7) y1 * i % (10**9+7) y1 a, b = MAP() MAP() a ans -= x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7) x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7) ans y0 = 1 1 y0 def INT()   : return int(input()) def INT()   : return int(input()) INT y1 = 1 1 y1 x1 = x1 * (n - i + 1) % (10**9+7) x1 * (n - i + 1) % (10**9+7) x1
from math import ceil,floor,factorial,gcd,sqrt,log2,cos,sin,tan,acos,asin,atan,degrees,radians,pi,inf
from itertools import accumulate,groupby,permutations,combinations,product,combinations_with_replacement
from collections import deque,defaultdict,Counter
from bisect import bisect_left,bisect_right
from operator import itemgetter
from heapq import heapify,heappop,heappush
from queue import Queue,LifoQueue,PriorityQueue
from copy import deepcopy
from time import time
import string
import sys
sys.setrecursionlimit(10 ** 7)
def input() : return sys.stdin.readline().strip()
def INT()   : return int(input())
def MAP()   : return map(int,input().split())
def LIST()  : return list(MAP())

def pow_k(x, n, mod):
    if n == 0:
        return 1

    K = 1
    while n > 1:
        if n % 2 != 0:
            K *= x
        x = x * x % mod
        n //= 2

    return K * x % mod

n, a, b = MAP()
ans = pow_k(2,n,10**9+7) - 1

x0 = 1
y0 = 1
x1 = 1
y1 = 1
for i in range(1, max(a,b)+1):
    if i <= a:
        x0 = x0 * (n - i + 1) % (10**9+7)
        y0 = y0 * i % (10**9+7)
    if i <= b:
        x1 = x1 * (n - i + 1) % (10**9+7)
        y1 = y1 * i % (10**9+7)

ans -= x0*pow_k(y0,10**9+7-2,10**9+7) + x1*pow_k(y1,10**9+7-2,10**9+7)
print(ans % (10**9+7))