#include <cstdio>
using namespace std;

typedef long long ll;

const int maxn = 9e5 + 5;
const int mod = 1e9 + 7;

int n, m, k, Q;
ll ans;
ll f[maxn], fac[maxn], inv[maxn], bin[maxn];

ll power(ll b, int k)
{
    ll res = 1;
    for(; k; k >>= 1, b = b * b % mod)
        if(k & 1)
            res = res * b % mod;
    return res;
}

ll C(int n, int m)
{
    if(m > n)
        return 0;
    return fac[n] * inv[m] % mod * inv[n - m] % mod;
}

int main()
{
    scanf("%d%d%d", &n, &m, &k);
    Q = m + k;
    f[0] = fac[0] = bin[0] = inv[0] = 1;
    for(int i = 1; i <= n + Q; i++)
    {
        fac[i] = fac[i - 1] * i % mod;
        inv[i] = power(fac[i], mod - 2);
    }
    for(int i = 1; i <= Q; i++)
    {
        f[i] = ((f[i - 1] << 1) - C(i - 1, m) - C(i - 1, k) + (mod << 1)) % mod;
        bin[i] = bin[i - 1] * 3 % mod;
    }
    for(int i = 0; i <= Q; i++)
    {
        ll tmp = C(i + n - 1, n - 1) * f[i] % mod * bin[Q - i] % mod;
        ans += tmp;
        if(ans >= mod)
            ans -= mod;
    }
    printf("%lld\n", ans);
    return 0;
}
