#include<bits/stdc++.h>
using namespace std;

const int mod = 1e9+7;
long long int fac[1000001],inv[1000001];

long long int mypow(long long int a,long long int b){
	a%=mod;
	long long int res=1;
	while(b){
		if(b&1)	res=res*a%mod;
		a=a*a%mod;
		b>>=1;
	}
	return res;
}

long long int Choose(long long int a,long long int b){
	return fac[a]*inv[b]%mod*inv[a-b]%mod;
}

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);
	int n,m,k;
	fac[0]=1;
	for(int i=1;i<=1000000;i++)
		fac[i]=fac[i-1]*i%mod;
	for(int i=0;i<=1000000;i++)
		inv[i]=mypow(fac[i],mod-2);
	cin>>n>>m>>k;
	if(m>k)	swap(m,k);
	long long int ans=0;
	long long int tmp=1;
	for(int i=0;i<=k+m;i++){
		ans=(ans+Choose(n-1+i,n-1)*tmp%mod*mypow(3,k+m-i))%mod;
		if(i<m)
			tmp=tmp*2%mod;
		else if(i<k)
			tmp=(tmp*2-Choose(i,i-m)+mod)%mod;
		else{
			tmp=(tmp*2-Choose(i,i-m)+mod)%mod;
			tmp=(tmp-Choose(i,k)+mod)%mod;	
		}
	}
	cout<<ans<<endl;
}
