# include "iostream"
# include "cstdio"

using namespace std;

const int maxm=9e5+10;
const int Mod=1e9+7;

int N,M,K,Max;
long long Fac[maxm],Inv1[maxm],Inv2[maxm],P[maxm];

long long C(int x,int y){
	return Fac[x]*Inv2[y]%Mod*Inv2[x-y]%Mod;
}

int main(){
	register int i,j;
	register long long Ans=0;
	scanf("%d%d%d",&N,&M,&K);
	Max=N+M+K;
	Fac[0]=Fac[1]=Inv1[0]=Inv1[1]=Inv2[0]=Inv2[1]=1;
	P[0]=1,P[1]=3;
	for(i=2;i<=Max;i++){
		Fac[i]=Fac[i-1]*i%Mod;
		Inv1[i]=(Mod-Mod/i)*Inv1[Mod%i]%Mod;
		Inv2[i]=Inv2[i-1]*Inv1[i]%Mod;
		P[i]=P[i-1]*3%Mod;
	}
	if(M<K) swap(M,K);
	for(i=0,j=1;i<=M+K;i++){
		Ans=(Ans+C(N-1+i,N-1)*P[M+K-i]%Mod*j)%Mod;
        if(i<K) j=j*2%Mod;
        else if(i>=M) j=((j<<1)-C(i,K)-C(i,i-M)+(Mod<<1))%Mod;
		else j=((j<<1)-C(i,K)+Mod)%Mod;
	}
	printf("%lld",Ans);
	return 0;
}