#include <bits/stdc++.h>
using namespace std;
const int Mod = 1e9 + 7;
const int N = 9e5;
int n, m, k;
long long fac[N], vfac[N];
long long mpow(long long a, int b) {
  long long rt;
  for (rt = 1; b; b >>= 1, a = (a * a) % Mod)
    if (b & 1) rt = (rt * a) % Mod;
  return rt;
}
void init(int n) {
  fac[0] = 1;
  for (int i = 1; i <= n; i++) fac[i] = (fac[i - 1] * i) % Mod;
  vfac[n] = mpow(fac[n], Mod - 2);
  for (int i = n - 1; i >= 0; i--) vfac[i] = vfac[i + 1] * (i + 1) % Mod;
}
long long comb(int n, int m) {
  return fac[n] * vfac[n - m] % Mod * vfac[m] % Mod;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  if (m < k) swap(m, k);
  init(m + k + n);
  long long sum = 0, ans = 0;
  for (int s = 0; s <= m + k; s++) {
    if (s == 0) {
      sum = 1;
    } else if (s <= k) {
      sum = (sum << 1) % Mod;
    } else if (s <= m) {
      sum = ((sum << 1) + Mod - comb(s - 1, s - k - 1)) % Mod;
    } else {
      sum = ((sum << 1) + Mod - comb(s - 1, s - k - 1) + Mod - comb(s - 1, m)) %
            Mod;
    }
    long long sub =
        sum * comb(n - 1 + s, n - 1) % Mod * mpow(3, m + k - s) % Mod;
    ans = (ans + sub) % Mod;
  }
  printf("%lld\n", ans);
}
