#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
typedef pair<int, int> pii;
typedef pair<int, pii> pipii;
typedef pair<pii, pii> piipii;

#define mp make_pair
#define fi first
#define se second
#define all(a) (a).begin(), (a).end()
#define sz(a) (int)(a).size()
#define eb emplace_back
const int mod = 1e9+7;

ll p3[900005], dp[900005], sum[900005];
ll f1[900005], f2[900005];
ll pow2(ll a, ll b){
    ll res = 1;
    while(b){
        if(b%2) res = res*a%mod;
        a = a*a%mod;
        b/=2;
    }
    return res;
}
ll C(int a, int b){
    return f1[a]*1ll*f2[b]%mod*f2[a-b]%mod;
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n, m, k;
    cin >> n >> m >> k;
    f1[0] = f2[0] = 1;
    for(int i=1;i<=n+m+k;i++) f1[i] = f1[i-1]*1ll*i%mod;
    for(int i=1;i<=n+m+k;i++) f2[i] = pow2(f1[i], mod-2);
    p3[0] = 1;
    for(int i=1;i<=n+m+k;i++) p3[i] = p3[i-1]*3%mod;

    ll sum = 1, ans = 0;
    int l = 0, r = 0;
    for(int i=0;i<=m+k;i++){
        if(r > m){
            sum = (sum - C(i-1, m) + mod)%mod;
            r--;
        }
        if(i-l > k){
            sum = (sum - C(i-1, k) + mod)%mod;
            l++;
        }
        ll res = C(i+n-1, i)*1ll*sum%mod*p3[n+m+k-i-n]%mod;
        ans = (ans + res)%mod;
        sum = sum*2%mod;
        r++;
    }
    printf("%lld\n", ans);
}