#include <bits/stdc++.h>
using namespace std;
const int maxn=912345;
const long long mod=1000000007;
int n,m,k;
long long fac[maxn],rev[maxn],p3[maxn],f[maxn];
inline long long ksm(long long x,long long n) {
    long long ret=1;
    while (n) {
        if (n&1) ret=ret*x%mod;
        n>>=1;
        x=x*x%mod;
    }
    return ret;
}
inline long long C(int x,int y) {
    return fac[x]*rev[y]%mod*rev[x-y]%mod;
}
int main()
{
    scanf("%d%d%d",&n,&m,&k);
    fac[0]=p3[0]=1;
    for (int i=1;i<maxn;++i) {
        fac[i]=fac[i-1]*i%mod;
        p3[i]=p3[i-1]*3%mod;
    }
    rev[maxn-1]=ksm(fac[maxn-1],mod-2);
    for (int i=maxn-2;i>=0;--i) rev[i]=(i+1)*rev[i+1]%mod;
    f[0]=1;
    for (int i=1;i<maxn;++i) {
        f[i]=2*f[i-1]%mod;
        if (i>m) f[i]=((f[i]-C(i-1,m))%mod+mod)%mod;
        if (i>k) f[i]=((f[i]-C(i-1,k))%mod+mod)%mod;
    }
    long long res=0;
    for (int i=n;i<=n+m+k;++i)
        res=(res+p3[n+m+k-i]*C(i-1,n-1)%mod*f[i-n]%mod)%mod;
    cout<<res<<endl;
    return 0;
}
