#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

const ll mod=1e9+7;
ll p(ll a, ll n)//快速幂递归式 
{
    if(n == 0) return 1;//如果次方是0则直接返回1 
    ll x = p(a, n/2);//因为最后结果是取余，所以可将其开根号，n奇偶分情况，若为基数会少乘一个a 
    ll ans = x * x % mod;//然后平方因为可能越界所以取余 
    if(n % 2 == 1) ans = ans *a % mod;//若n为奇数则需要再次乘以a 
    return ans%mod;
}

ll C(ll n,ll m) {
    if(n < m) return 0;//求组合计数 
    ll res = 1;
    for(ll i=1; i<=m; i++) {//n!/m!*(n-m)!==(n!/(n-m!)/m!约分后得下式 
        ll a = (n+i-m)%mod;//从n+1-m乘到n ，注意取余 
        ll b = i%mod;//从1乘到m，注意取余 
        res = res*(a*p(b,mod-2)%mod)%mod;//费马小定理求逆元 
    }
    return res;
}

ll Lucas(ll n,ll m) {
    if(m == 0) return 1;
    return C(n%mod, m%mod) * Lucas(n/mod,m/mod) % mod;//卢卡斯定理 
}

ll n,a,b;
int main(){
    cin>>n>>a>>b;
    ll ans=p(2,n)-Lucas(n,a)-Lucas(n,b)-1;
    while(ans<0) {
        ans+=mod;
    }
    cout<<ans%mod;
    return 0;
}