#include <bits/stdc++.h>
const int Mod = 1e9 + 7;
int n, m, k;
int fac[600005], ifac[600005];
int qpow(int a, int x) {
  int res = 1;
  for (; x > 0; x >>= 1) {
    if (x & 1) res = 1ll * res * a % Mod;
    a = 1ll * a * a % Mod;
  }
  return res;
}
void init() {
  const int lim = 6e5;
  fac[0] = 1;
  for (int i = 1; i <= lim; ++i) fac[i] = 1ll * fac[i - 1] * i % Mod;
  ifac[lim] = qpow(fac[lim], Mod - 2);
  for (int i = lim - 1; i >= 0; --i) ifac[i] = ifac[i + 1] * (i + 1ll) % Mod;
}
int C(int x, int y) { return 1ll * fac[x] * ifac[y] % Mod * ifac[x - y] % Mod; }
int main() {
  init();
  scanf("%d%d%d", &n, &m, &k);
  int ans = 0;
  for (int t = 0; t <= m + k; ++t) {
    ans = (ans + 1ll * qpow(2, t) * qpow(3, m + k - t) % Mod *
                     (C(n - 1 + t, n - 1))) %
          Mod;
  }
  printf("%d\n", ans);
  return 0;
}
