#include <bits/stdc++.h>
using namespace std;
#define ll long long
const ll MOD = 1e9 + 7;
ll modpow(ll a, ll b){
	ll ans = 1;
	while (b > 0){
		if (b % 2 == 1){
			ans *= a;
			ans %= MOD;
		}
		a *= a;
		a %= MOD;
		b /= 2;
	}
	return ans;
}
ll modinv(ll a){
	return modpow(a, MOD - 2);
}
vector<ll> mf = {1};
vector<ll> mfi = {1};
ll modfact(ll n){
	if (mf.size() > n){
		return mf[n];
	} else {
		for (ll i = mf.size(); i <= n; i++){
			ll next = mf.back() * i % MOD;
			mf.push_back(next);
			mfi.push_back(modinv(next));
		}
		return mf[n];
	}
}
ll modfactinv(ll n){
	if (mfi.size() > n){
		return mfi[n];
	} else {
		return modinv(modfact(n));
	}
}
ll modbinom(ll n, ll k){
	if (n < 0 || k < 0 || k > n){
		return 0;
	} else {
		return modfact(n) * modfactinv(k) % MOD * modfactinv(n - k) % MOD;
	}
}
int main(){
  ll N, M, K;
  cin >> N >> M >> K;
  if (N > M + K){
    cout << 0 << endl;
  } else {
    ll ans = modbinom(N + M, N);
    ll a = N - K - 1, b = K + M + 1;
    ans -= modbinom(a + b, a);
    if (ans < 0){
      ans += MOD;
    }
    cout << ans << endl;
  }
}

#include <bits/stdc++.h>
#define FAST ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
typedef long long ll;
typedef long double ld;
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define mod 1000000007
#define pii pair<ll,ll>
#define inf 1000000000000000000
#define bpc(x) __builtin_popcountll(x)
#define autoit(x,it) for(auto it = x.begin(); it != x.end(); it++)
#define autoitr(x,it) for(auto it = x.rbegin(); it != x.rend(); it++)
#define rep(n) for(ll i = 0; i < n; i++)
#define repi(i,n) for(ll i = 0; i < n; i++)

#include <ext/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
using namespace __gnu_pbds; 

#define ordered_set tree<ll, null_type,less<ll>, rb_tree_tag,tree_order_statistics_node_update> 

using namespace std;
mt19937_64 mt(chrono::steady_clock::now().time_since_epoch().count());

int main()
{
  FAST/**/
    
   ll n = 4;
   
   ll arr[n];
   rep(n)
        cin>>arr[i];
   
   ll lim = (1ll<<(n));
   bool pos = 0;
   repi(mask,lim)
   {
       ll sum = 0;
       ll sum1 = 0;
       repi(j,n)
       {
           sum1+=arr[j];
           if((1ll<<j)&mask)        
                sum+=arr[j];
       }
       //cout<<sum<<" "<<sum1<<"\n";
       if(sum == sum1/2 && sum1%2 == 0)
            pos = 1;
   }
   
   if(pos)
        cout<<"Yes\n";
   else cout<<"No\n";        
   
  return 0;   
  
}  
