#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int pow3[600005];
int fact[900005];
int invf[900005];
int Power(int x, int y)
{
	int re = 1;
	while(y)
	{
		if(y & 1)
		{
			re = 1ll * re * x % MOD;
		}
		x = 1ll * x * x % MOD;
		y >>= 1;
	}
	return re;
}
int C(int n, int m)
{
	if(m < 0)
	{
		return 0;
	}
	if(n < m)
	{
		return 0;
	}
	return 1ll * fact[n] * invf[m] % MOD * invf[n - m] % MOD;
}
int n, m, k;

int main()
{
	fact[0] = 1;
	for(int i = 1; i <= 900000; i++)
	{
		fact[i] = 1ll * fact[i - 1] * i % MOD;
	}
	invf[900000] = Power(fact[900000], MOD - 2);
	for(int i = 900000; i; i--)
	{
		invf[i - 1] = 1ll * invf[i] * i % MOD;
	}
	pow3[0] = 1;
	for(int i = 1; i <= 600000; i++)
	{
		pow3[i] = 3ll * pow3[i - 1] % MOD;
	}
	scanf("%d%d%d", &n, &m, &k);
	int ans = 0;
	int t = 1;
	for(int i = 0; i <= m + k; i++)
	{
		int tmp = 1ll * C(n - 1 + i, n - 1) * t % MOD;
		tmp = 1ll * tmp * pow3[m + k - i] % MOD;
		ans = (ans + tmp) % MOD;
		t = ((2ll * t + MOD - C(i, m)) % MOD + MOD - C(i, i - k)) % MOD;
	}
	printf("%d\n", ans);
	return 0;
}