#include<cstdio>
#include<algorithm>
#define md 1000000007
#define C(x,y)(1ll*jc[y]*ny[x]%md*ny[(y)-(x)]%md)
using namespace std;
int jc[1000001],ny[1000001];
int pw(int x,int y){
	int ans=1;
	for(int i=1;y;i<<=1,x=1ll*x*x%md)
		if(y&i)ans=1ll*x*ans%md,y-=i;
	return ans;
}
int main(){
	int n,m,k,z;scanf("%d%d%d",&n,&m,&k);z=n+m+k;
	for(int i=jc[0]=1;i<=z;i++)jc[i]=1ll*i*jc[i-1]%md;
	ny[z]=pw(jc[z],md-2);
	for(int i=z;i;i--)ny[i-1]=1ll*i*ny[i]%md;
	int ans=0,o=1;
	for(int i=n;i<=z;i++){
		ans=(ans+C(n-1,i-1)*o%md*pw(3,z-i))%md;
		o=(o+o)%md;
		if(i>=n+m)o=(o-C(m,i-n)+md)%md;
		if(i>=n+k)o=(o-C(i-n-k,i-n)+md)%md;
	}
	printf("%d",ans);
}