#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
const int MAXN=(3e5+10)*3,MOD=1e9+7;
ll res=0,cur=1;
int n,m,k,fac[MAXN],inv[MAXN];

ll quick_pow(ll a,ll b)
{
	ll ret=1;
	for(;b;b>>=1,a=a*a%MOD)
		if(b&1) ret=ret*a%MOD;
	return ret;
}
int C(int a,int b)
{if(a<b||b<0) return 0;return 1ll*fac[a]*inv[b]%MOD*inv[a-b]%MOD;}

int main()
{
	scanf("%d%d%d",&n,&m,&k);
	fac[0]=1;
	for(int i=1;i<MAXN;i++)
		fac[i]=1ll*fac[i-1]*i%MOD;
	inv[MAXN-1]=quick_pow(fac[MAXN-1],MOD-2);
	for(int i=MAXN-2;i>=0;i--)
		inv[i]=1ll*inv[i+1]*(i+1)%MOD;
	
	for(int i=n;i<=n+m+k;i++)
		(res+=C(i-1,n-1)*cur%MOD*quick_pow(3,n+m+k-i)%MOD)%=MOD,
		cur=(2*cur-C(i-n,m)+MOD-C(i-n,i-n-k)+MOD)%MOD;
	printf("%lld",res);
	return 0;
}