#include<iostream>
#define int long long
using namespace std;
int n,m,g,u=1,v=1,ans;
const int p=1000000007;
int po(int a,int b){
int res=1;
while(b){
if(b&1)res=res*a%p;
b>>=1;
a=a*a%p;
}
return res;
}
int inv(int t){return po(t,p-2);}
signed main(){
cin>>n>>m>>g;
if(m==0){
cout<<((n&1)^g^1);
return 0;
}
if(m==1){
if(n&1){
if(g)cout<<(n-1)/2;
else cout<<(n+3)/2;
}
else {
if(g)cout<<(n/2);
else cout<<(n/2+1);
}
return 0;
}
for(int i=n+1;i<=m-1+n;++i)u=u*i%p;
for(int i=1;i<=m-1;++i)v=v*i%p;
if(g){
u=u*n%p;
v=v*(n+m-1)%p;
}
for(int i=g;i<=n;i+=2){
ans=(ans+u*inv(v))%p;
u=u*(n-i)%p;
u=u*(n-i-1)%p;
v=v*(n-i+m-1)%p;
v=v*(n-i+m-2)%p;
}
cout<<ans<<endl;
}
n=4 m=0 g=1, 0 0 0 0 -》0 0 1-》0 0 -》1 而(n&1)^g^1=0
wa on test 4->wa on test 8
改成!g