#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define SF scanf
#define PF printf
#define MAXN 900010
#define MOD 1000000007
using namespace std;
typedef long long ll;
ll inv[MAXN],fac[MAXN],pow3[MAXN];
ll fsp(ll x,int y){
	ll res=1;
	while(y){
		if(y&1)
			res=res*x%MOD;
		x=x*x%MOD;
		y>>=1;	
	}
	return res;
}
ll C(int x,int y){
	return fac[x]*inv[y]%MOD*inv[x-y]%MOD;
}
int main(){
	int n,m,k;
	SF("%d%d%d",&n,&m,&k);
	pow3[0]=1;
	fac[0]=1;
	for(int i=1;i<=n+m+k;i++){
		pow3[i]=pow3[i-1]*3ll%MOD;	
		fac[i]=fac[i-1]*i%MOD;
	}
	inv[n+m+k]=fsp(fac[n+m+k],MOD-2);	
	for(int i=n+m+k;i>0;i--)
		inv[i-1]=inv[i]*i%MOD;
	n--;
	if(m<k)
		swap(m,k);
	ll j=1,ans=0;
	for(int i=0;i<=m+k;i++){
		ans=(ans+C(n+i,n)*pow3[m+k-i]%MOD*j)%MOD;	
		if(i<k)
			j=j*2ll%MOD;
		else if(i<m)
			j=(j*2ll-C(i,k))%MOD;
		else 	
			j=(j*2ll-C(i,k)-C(i,m))%MOD;
	}
	ans=(ans+MOD)%MOD;
	PF("%lld",ans);
}