#include <bits/stdc++.h>
using namespace std;
const long long N = 3e5 + 5;
const long long mod = 1e9 + 7;
long long fact[N], inv_fact[N], pw[N];
long long binPow(long long x, long long y) {
  long long ans = 1;
  while (y) {
    if (y & 1) ans = (ans * x) % mod;
    x = (x * x) % mod;
    y >>= 1;
  }
  return ans;
}
long long C(long long n, long long k) {
  long long ans = 1;
  ans *= fact[n];
  ans %= mod;
  ans *= inv_fact[k];
  ans %= mod;
  ans *= inv_fact[n - k];
  ans %= mod;
  return ans;
}
signed main() {
  fact[0] = inv_fact[0] = pw[0] = 1;
  for (long long i = 1; i < N; i++) {
    pw[i] = (pw[i - 1] * 3) % mod;
    fact[i] = (i * fact[i - 1]) % mod;
    inv_fact[i] = binPow(fact[i], mod - 2);
  }
  long long n, m, k;
  scanf("%lld %lld %lld", &n, &m, &k);
  long long ans = 0;
  for (long long i = 0; i <= m; i++) {
    for (long long j = 0; j <= k; j++) {
      ans = (ans +
             C(i + j, i) * C(i + j + n - 1, i + j) % mod * pw[m + k - i - j]) %
            mod;
    }
  }
  printf("%lld", ans);
  return 0;
}
