#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1000000007;
const int N=1<<20;
inline int ksm(ll a,int b,int c=1){for(;b;b/=2,a=a*a%mod)if(b&1)c=c*a%mod;return c;}
int jc[N],jc2[N],pw3[N];
void Init(){
	pw3[0]=1;
	for(int i=1;i<N;++i)pw3[i]=(ll)3*pw3[i-1]%mod;
	jc[0]=1;
	for(int i=1;i<N;i++)jc[i]=(ll)jc[i-1]*i%mod;
	jc2[N-1]=ksm(jc[N-1],mod-2);
	for(int i=N-1;i;i--)jc2[i-1]=(ll)jc2[i]*i%mod;
}
int C(int n,int k){
	if(k<0)return 0;
	if(n<0){
		if(k&1)return(mod-C(-n+k-1,k))%mod;
		else return C(-n+k-1,k);
	}
	if(n<k)return 0;
	return (ll)jc[n]*jc2[k]%mod*jc2[n-k]%mod;
}
inline void reduce(int&x){x+=x>>31&mod;}
int a,b,c,ans;
int main(){
	ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
	cin>>a>>b>>c;Init();
	for(int i=0,res=1;i<=b+c;++i){
		ans=(ans+(ll)pw3[b+c-i]*C(a+i-1,i)%mod*res)%mod;
		reduce(res=(res*2-C(i,b)-C(i,c))%mod);
	}
	cout<<ans<<'\n';
	return 0;
}
