#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;
typedef long long LL;
LL f[900015], r[900015];
LL th[900015];
LL inv(LL a){
    LL ans = 1;
    LL b = mod-2;
    while(b){
        if(b%2) ans = ans*a%mod;
        a = a*a%mod;
        b/=2;
    }
    return ans;
}
LL C(int a, int b){
    return f[a]*r[b]%mod*r[a-b]%mod;
}
int main(){
    f[0] = r[0] = th[0] = 1;
    for(int i=1;i<=900010;i++){
        f[i] = f[i-1]*i%mod;
        r[i] = inv(f[i]);
        th[i] = th[i-1]*3%mod;
    }
    int n, m, k;
    scanf("%d%d%d", &n, &m, &k);
    LL ans = 0, sum = 1, ll = 0, rr = 0;
    for(int i=0;i<=m+k;i++){
        int l = max(0, i-k), r = min(i, m);
        if(ll < l) sum = (sum - C(i, ll) + mod)%mod, ll++;
        if(rr > r) sum = (sum - C(i, rr) + mod)%mod, rr--;

        LL res = C(i+n-1, n-1)*th[n+m+k-i-n]%mod*sum%mod;
        ans = (ans + res)%mod;

        sum = sum*2%mod;
        if(ll != 0) sum = (sum + C(i, ll-1))%mod;
        if(rr != i) sum = (sum + C(i, rr+1))%mod;
        rr++;
    }
    printf("%lld\n", ans);
}