// Vicfred
// https://atcoder.jp/contests/abc156/tasks/abc156_d
// math

import std.stdio: writeln, readf;

ulong binpow(ulong a, ulong b, ulong m) {
    a %= m;
    ulong res = 1;
    while (b > 0) {
        if (b & 1)
            res = res * a % m;
        a = a * a % m;
        b >>= 1;
	}
    return res;
}

ulong binomial(ulong n, ulong k, ulong m) {
    ulong x = 1;
    ulong y = 1;
    foreach  (ulong i; 0..k) {
        x *= n-i;
        x %= m;
        y *= i+1;
        y %= m;
	}
    y = binpow(y, m-2, m);
    return (x*y)%m;
}

void main()
{

ulong mod = 10^^9+7;

ulong n, a, b;
"%s %s %s\n".readf(&n, &a, &b);

writeln((binpow(2, n, mod) - binomial(n,a, mod) - binomial(n,b, mod) - 1 + mod)%mod);

}
