def main():

    from math import factorial

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

    p = 1000000007



    # 1:花束の組み合わせ総数の(mod p)

    n_all = pow(2, n, p) -1



    # 2:aとbの組み合わせ数の(mod p)を出す。

    a_comb = 0      # aの組み合わせ数

    a_comb_x = 1    # aの組み合わせ数計算の分子。n*(n-1)*…*(n-r+1)のmod p

    a_comb_y = 1    # aの組み合わせ数計算の分母。r!のmod pにおける逆元

    for i in range(n, n-a ,-1):

        a_comb_x *= i

        a_comb_x %= p

    a_comb_y = factorial(a)

    a_comb_y = pow(a_comb_y, p-2,p)

    a_comb = (a_comb_x * a_comb_y) % p



    b_comb = 0      

    b_comb_x = 1    

    b_comb_y = 1    

    for i in range(n, n-b ,-1):

        b_comb_x *= i

        b_comb_x %= p

    b_comb_y = factorial(b)

    b_comb_y = pow(b_comb_y, p-2,p)

    b_comb = (b_comb_x * b_comb_y) % p



    # 3: 1の結果から２のそれをマイナスする。結果が負になったら+p

    r = n_all - a_comb

    if r < 0:

        r += p

    r -= b_comb

    if r < 0:

        r += p

    print(r)



main()
def main():

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

    p = 10 ** 9 + 7

    r = pow(2, n, p) - 1

    if (n - a) < a:

        a = n - a

    if (n - b) < b:

        b = n - b

    fac_na = 1

    for i1 in range(n, n - a, -1):

        fac_na = (fac_na * i1) % p

    fac_nb = 1

    for i1 in range(n, n - b, -1):

        fac_nb = (fac_nb * i1) % p

    fac_a = 1

    for i1 in range(1, a+1):

        fac_a = (fac_a * i1) % p

    fac_b = 1

    for i1 in range(1, b+1):

        fac_b = (fac_b * i1) % p



    an = fac_na * pow(fac_a, p-2, p)

    bn = fac_nb * pow(fac_b, p-2, p)

    an = an % p

    bn = bn % p

    r -= an

    if r < 0:

        r += p

    r -= bn

    if r < 0:

        r += p

    if r < 0:

        r += p

    print((int(r)))





if __name__ == '__main__':

    main()
def main():
    from math import factorial

    n, a, b = list(map(int, input().split()))
    p = 1000000007
    # 1:花束の組み合わせ総数の(mod p)
    n_all = pow(2, n, p) - 1
    # 2:aとbの組み合わせ数の(mod p)を出す。
    a_comb = 0  # aの組み合わせ数
    a_comb_x = 1  # aの組み合わせ数計算の分子。n*(n-1)*…*(n-r+1)のmod p
    a_comb_y = 1  # aの組み合わせ数計算の分母。r!のmod pにおける逆元
    for i in range(n, n - a, -1):
        a_comb_x *= i
        a_comb_x %= p
    a_comb_y = factorial(a)
    a_comb_y = pow(a_comb_y, p - 2, p)
    a_comb = (a_comb_x * a_comb_y) % p
    b_comb = 0
    b_comb_x = 1
    b_comb_y = 1
    for i in range(n, n - b, -1):
        b_comb_x *= i
        b_comb_x %= p
    b_comb_y = factorial(b)
    b_comb_y = pow(b_comb_y, p - 2, p)
    b_comb = (b_comb_x * b_comb_y) % p
    # 3: 1の結果から２のそれをマイナスする。結果が負になったら+p
    r = n_all - a_comb
    if r < 0:
        r += p
    r -= b_comb
    if r < 0:
        r += p
    print(r)


main()

def main():
    n, a, b = list(map(int, input().split()))
    p = 10**9 + 7
    r = pow(2, n, p) - 1
    if (n - a) < a:
        a = n - a
    if (n - b) < b:
        b = n - b
    fac_na = 1
    for i1 in range(n, n - a, -1):
        fac_na = (fac_na * i1) % p
    fac_nb = 1
    for i1 in range(n, n - b, -1):
        fac_nb = (fac_nb * i1) % p
    fac_a = 1
    for i1 in range(1, a + 1):
        fac_a = (fac_a * i1) % p
    fac_b = 1
    for i1 in range(1, b + 1):
        fac_b = (fac_b * i1) % p
    an = fac_na * pow(fac_a, p - 2, p)
    bn = fac_nb * pow(fac_b, p - 2, p)
    an = an % p
    bn = bn % p
    r -= an
    if r < 0:
        r += p
    r -= bn
    if r < 0:
        r += p
    if r < 0:
        r += p
    print((int(r)))


if __name__ == "__main__":
    main()

-    from math import factorial - -    p = 1000000007 -    # 1:花束の組み合わせ総数の(mod p) -    n_all = pow(2, n, p) - 1 -    # 2:aとbの組み合わせ数の(mod p)を出す。 -    a_comb = 0  # aの組み合わせ数 -    a_comb_x = 1  # aの組み合わせ数計算の分子。n*(n-1)*…*(n-r+1)のmod p -    a_comb_y = 1  # aの組み合わせ数計算の分母。r!のmod pにおける逆元 -    for i in range(n, n - a, -1): -        a_comb_x *= i -        a_comb_x %= p -    a_comb_y = factorial(a) -    a_comb_y = pow(a_comb_y, p - 2, p) -    a_comb = (a_comb_x * a_comb_y) % p -    b_comb = 0 -    b_comb_x = 1 -    b_comb_y = 1 -    for i in range(n, n - b, -1): -        b_comb_x *= i -        b_comb_x %= p -    b_comb_y = factorial(b) -    b_comb_y = pow(b_comb_y, p - 2, p) -    b_comb = (b_comb_x * b_comb_y) % p -    # 3: 1の結果から２のそれをマイナスする。結果が負になったら+p -    r = n_all - a_comb +    p = 10**9 + 7 +    r = pow(2, n, p) - 1 +    if (n - a) < a: +        a = n - a +    if (n - b) < b: +        b = n - b +    fac_na = 1 +    for i1 in range(n, n - a, -1): +        fac_na = (fac_na * i1) % p +    fac_nb = 1 +    for i1 in range(n, n - b, -1): +        fac_nb = (fac_nb * i1) % p +    fac_a = 1 +    for i1 in range(1, a + 1): +        fac_a = (fac_a * i1) % p +    fac_b = 1 +    for i1 in range(1, b + 1): +        fac_b = (fac_b * i1) % p +    an = fac_na * pow(fac_a, p - 2, p) +    bn = fac_nb * pow(fac_b, p - 2, p) +    an = an % p +    bn = bn % p +    r -= an -    r -= b_comb +    r -= bn -    print(r) +    if r < 0: +        r += p +    print((int(r))) -main() +if __name__ == "__main__": +    main()