#include<bits/stdc++.h>
using namespace std;
#define ll long long
const ll Mod=1e9+7;
int n,m,k,N;
ll ans,fac[900005],inv[900005],er[900005],san[900005],b,c;
ll quipow(ll x,ll m)
{
    ll res=1;
    while(m)
    {
        if(m&1) res=res*x%Mod;
        x=x*x%Mod;
        m>>=1;
    }
    return res;
}
ll C(int y,int u)
{
    if(y>u) return 0;
    return fac[u]*inv[y]%Mod*inv[u-y]%Mod;
}
int main()
{
    fac[0]=fac[1]=1;
    for(ll i=2;i<=900000;i++) fac[i]=fac[i-1]*i%Mod;
    inv[900000]=quipow(fac[900000],Mod-2);
    for(ll i=899999;i>=0;i--) inv[i]=inv[i+1]*(i+1)%Mod;
    er[0]=1;
    for(ll i=1;i<=900000;i++) er[i]=er[i-1]*2%Mod;
    san[0]=1;
    for(ll i=1;i<=900000;i++) san[i]=san[i-1]*3%Mod;
    scanf("%d%d%d",&n,&m,&k);N=n+m+k;
    for(int i=n;i<=N;i++)
    {
        int la=i-n;
        ll now=C(n-1,i-1),gg=er[la];
        b=(b+(m+1==la?1:(m+1<la?(b+C(i-n-m-1,i-n-1)):0)))%Mod;
        c=(c+(k+1==la?1:(k+1<la?(c+C(i-n-k-1,i-n-1)):0)))%Mod;
        gg=(gg-b+Mod)%Mod;gg=(gg-c+Mod)%Mod;
        ans=(ans+now*gg%Mod*san[N-i]%Mod)%Mod;
    }
    printf("%lld",ans);
}