#include<bits/stdc++.h>
using namespace std;
#define int long long 
#define N 1000010
#define mo 1000000007ll
int jc[N],ij[N],n,m,k,p3[N],ans;
int c(int y,int x){
	return jc[y]*ij[y-x]%mo*ij[x]%mo;
}
int qp(int x,int y){
	int r=1;
	for(;y;y>>=1,x=x*x%mo)
		if(y&1)r=r*x%mo;
	return r;
}
signed main(){
	jc[0]=ij[0]=p3[0]=1;
	for(int i=1;i<N;i++){
		jc[i]=jc[i-1]*i%mo;
		p3[i]=p3[i-1]*3%mo;
	}
	ij[N-1]=qp(jc[N-1],mo-2);
	for(int i=N-1;i;i--)
		ij[i-1]=ij[i]*i%mo;
	cin>>n>>m>>k;
	n--;
	if(m<k)swap(m,k);
	int j=1;
	for(int i=0;i<=m+k;i++){
		ans=(ans+c(n+i,n)*p3[m+k-i]%mo*j%mo)%mo;
		if(i<k)j=j*2%mo;
		else if(i>=m)j=(j*2-c(i,k)-c(i,i-m)+mo)%mo;
		else j=(j*2-c(i,k))%mo;
		j=(j+2*mo)%mo;
	}
	cout<<ans;
}