#include<bits/stdc++.h>
#define N (1800009)
#define LL long long
#define MOD (1000000007)
using namespace std;

LL inv[N],fac[N],facinv[N];
LL n,m,k,ans,f[N];

void Init()
{
	fac[0]=facinv[0]=inv[1]=1;
	for (int i=1; i<=1800000; ++i)
	{
		if (i!=1) inv[i]=(MOD-MOD/i)*inv[MOD%i]%MOD;
		fac[i]=fac[i-1]*i%MOD; facinv[i]=facinv[i-1]*inv[i]%MOD;
	}
}

LL C(LL n,LL m)
{
	if (n<m) return 0;
	return fac[n]*facinv[m]%MOD*facinv[n-m]%MOD;
}

LL Qpow(LL a,LL b)
{
	LL ans=1;
	while (b)
	{
		if (b&1) ans=ans*a%MOD;
		a=a*a%MOD; b>>=1;
	}
	return ans;
}

int main()
{
	Init();
	cin>>n>>m>>k;
	f[0]=1; f[1]=2;
	for (int i=1; i<=m+k; ++i)
		f[i]=(f[i-1]*2-C(i-1,m)-C(i-1,k))%MOD;
	for (int i=n; i<=n+m+k; ++i)
		(ans+=f[i-n]*C(i-1,n-1)%MOD*Qpow(3,n+m+k-i)%MOD)%=MOD;
	cout<<(ans+MOD)%MOD<<endl;
}