def main():

    mod = 10 ** 9 + 7



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



    ma = max(a, b)

    tbl = [0] * (ma + 1)



    # f = 1

    # for i in range(1, ma + 1):

    #     f = (f * i) % mod

    #

    # invs = [1] * (ma + 1)

    # invs[ma] = pow(f, mod - 2, mod)

    # for x in range(ma - 1, 0, -1):

    #     invs[x] = invs[x + 1] * (x + 1) % mod



    t = 1

    for i in range(1, max(a, b) + 1):

        t = (t * (n - i + 1) * pow(i, mod - 2, mod)) % mod

        tbl[i] = t



    ans = pow(2, n, mod) - 1 - tbl[a] - tbl[b]

    print((ans % mod))





if __name__ == '__main__':

    main()

mod = 10 ** 9 + 7



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





def choose(n, a, mod=mod):

    x, y = 1, 1

    for i in range(a):

        x = x * (n - i) % mod

        y = y * (i + 1) % mod

    return x * pow(y, mod - 2, mod)





ret = pow(2, n, mod)

ret -= 1

ret -= choose(n, a)

ret -= choose(n, b)

ret %= mod



print(ret)

def main():
    mod = 10**9 + 7
    n, a, b = list(map(int, input().split()))
    ma = max(a, b)
    tbl = [0] * (ma + 1)
    # f = 1
    # for i in range(1, ma + 1):
    #     f = (f * i) % mod
    #
    # invs = [1] * (ma + 1)
    # invs[ma] = pow(f, mod - 2, mod)
    # for x in range(ma - 1, 0, -1):
    #     invs[x] = invs[x + 1] * (x + 1) % mod
    t = 1
    for i in range(1, max(a, b) + 1):
        t = (t * (n - i + 1) * pow(i, mod - 2, mod)) % mod
        tbl[i] = t
    ans = pow(2, n, mod) - 1 - tbl[a] - tbl[b]
    print((ans % mod))


if __name__ == "__main__":
    main()

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


def choose(n, a, mod=mod):
    x, y = 1, 1
    for i in range(a):
        x = x * (n - i) % mod
        y = y * (i + 1) % mod
    return x * pow(y, mod - 2, mod)


ret = pow(2, n, mod)
ret -= 1
ret -= choose(n, a)
ret -= choose(n, b)
ret %= mod
print(ret)

-def main(): -    mod = 10**9 + 7 -    n, a, b = list(map(int, input().split())) -    ma = max(a, b) -    tbl = [0] * (ma + 1) -    # f = 1 -    # for i in range(1, ma + 1): -    #     f = (f * i) % mod -    # -    # invs = [1] * (ma + 1) -    # invs[ma] = pow(f, mod - 2, mod) -    # for x in range(ma - 1, 0, -1): -    #     invs[x] = invs[x + 1] * (x + 1) % mod -    t = 1 -    for i in range(1, max(a, b) + 1): -        t = (t * (n - i + 1) * pow(i, mod - 2, mod)) % mod -        tbl[i] = t -    ans = pow(2, n, mod) - 1 - tbl[a] - tbl[b] -    print((ans % mod)) +mod = 10**9 + 7 +n, a, b = list(map(int, input().split())) -if __name__ == "__main__": -    main() +def choose(n, a, mod=mod): +    x, y = 1, 1 +    for i in range(a): +        x = x * (n - i) % mod +        y = y * (i + 1) % mod +    return x * pow(y, mod - 2, mod) + + +ret = pow(2, n, mod) +ret -= 1 +ret -= choose(n, a) +ret -= choose(n, b) +ret %= mod +print(ret)