#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(){
    pow3[0]=1;
    fac[0]=1;
    for(int i=1;i<=900000;i++){
        pow3[i]=pow3[i-1]*3ll%MOD;  
        fac[i]=fac[i-1]*i%MOD;
    }
    inv[900000]=fsp(fac[900000],MOD-2);   
    for(int i=900000;i>0;i--)
        inv[i-1]=inv[i]*i%MOD;
    int n,m,k;
    while(SF("%d%d%d",&n,&m,&k)!=EOF){
	    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\n",ans);
	}
}