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

const int M = 1000000007;
int A, B, C;
long D[600001];
long f[900001];
long g[900001];

long powmod(long b, long e) {
	if (e == 0) return 1;
	if (e % 2 == 1) return b * powmod(b, e - 1) % M;
	long t = powmod(b, e / 2);
	return t * t % M;
}

void pre() {
	D[0] = 1;
	for (int i = 0; i < B + C; ++i) {
		D[i + 1] = D[i] * 3 % M;
	}
	const int N = A + B + C;
	
	f[0] = 1;
	for (int i = 0; i <= N; ++i) {
		f[i + 1] = f[i] * (i + 1) % M;
	}
	
	g[N] = powmod(f[N], M - 2);
	for (int i = N; i > 0; --i) {
		g[i - 1] = g[i] * i % M;
	}
}

long combi(long n, long r) {
	if (r < 0 || r > n) return 0;
	return f[n] * g[r] % M * g[n - r] % M;
}

int main() {
	cin >> A >> B >> C;
	--A;

	pre();

	long sum = 0;
	long k = 1;
	for (int s = 0; s <= B + C; ++s) {
		sum += D[B + C - s] * f[A + s] % M * g[s] % M * k % M;
    	sum %= M;
    	k = 2 * (k + M) - combi(s, B) - combi(s, C);
    	k %= M;
	}

	cout << sum * g[A] % M << endl;
	return 0;
}
