#include <bits/stdc++.h>
using namespace std; 
#define all(c) c.begin(),c.end()
#define sz(x) int(x.size())
#define ar array
typedef long long ll ; 
typedef vector<int> vi;
#define mod 1000000007
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll exp(ll x,ll y){
  x%=mod;
  ll res=1;
  while(y){
    if(y&1)
    res=res*x%mod;
    x=x*x%mod;
    y>>=1;
  }
  return res;
}
ll fact(ll n){
  ll res=1;
  for(ll i=2;i<=n;i=i+1)
  (res*=i)%=mod;
  return res;
}
bool isprime(ll n){
  if(n<=1) return 0;
  for(ll i=2;i*i<=n;++i)
  if(n%i==0) return 0;
  return 1;
}

int main() {
//freopen("input.txt","r",stdin);
//freopen("output.txt","w",stdout);
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int n; cin>>n;
n=(int)(1.08*double(n));
if(n<206) cout<<"Yay!";
else if(n==206) cout<<"so-so";
else cout<<":(";
return 0;
}
#include<bits/stdc++.h>
#define ll long long
#define re register
#define INF 2147483647
using namespace std;

inline int read()
{
	int f=1,x=0;char s=getchar();
	while(s<'0'||s>'9')
	{
		if(s=='-') f=-1;
		s=getchar();
	}
	while(s>='0'&&s<='9')
	{
		x=x*10+s-48;
		s=getchar();
	}
	return f*x;
}

const int p=1e9+7;
const int N=4e6+5;
inline int sub(int a,int b)
{
	return a-b<0?a-b+p:a-b;
}

inline int ksm(int a,int b)
{
	int ans=1;
	for(;b;b>>=1,a=1ll*a*a%p)
		if(b&1) ans=1ll*ans*a%p;
	return ans;
}

int fac[N],inv[N];
inline int C(int n,int m)
{
	if(n<m) return 0;
	return 1ll*fac[n]*inv[m]%p*inv[n-m]%p;
}

int main()
{
	int n=read(),m=read(),k=read()+1;
	if(n-m>=k)
	{
		puts("0");
		return 0;
	}
	fac[0]=inv[0]=1;
	for(int i=1;i<=4000000;i++) fac[i]=1ll*fac[i-1]*i%p;
	inv[4000000]=ksm(fac[4000000],p-2);
	for(int i=4000000-1;i>=1;i--) inv[i]=1ll*inv[i+1]*(i+1)%p;
//	cout<<C(n+m,n)<<endl;
	printf("%d\n",sub(C(n+m,n),C(n+m,n-k)));
	return 0;
} 