#include <bits/stdc++.h>
const int N = 1000005, Mod = 1e9 + 7;
inline int qpow(int a, int b) {
  int ans = 1;
  while (b) {
    if (b & 1) ans = 1ll * ans * a % Mod;
    a = 1ll * a * a % Mod, b >>= 1;
  }
  return ans;
}
int fac[N], inv[N], pow3[N];
inline void init_binom() {
  fac[0] = 1;
  for (int i = 1; i <= 1000000; i++) fac[i] = 1ll * fac[i - 1] * i % Mod;
  inv[1000000] = qpow(fac[1000000], Mod - 2);
  for (int i = 999999; i >= 0; i--) inv[i] = 1ll * inv[i + 1] * (i + 1) % Mod;
  pow3[0] = 1;
  for (int i = 1; i <= 1000000; i++) pow3[i] = 1ll * pow3[i - 1] * 3ll % Mod;
}
inline int C(int n, int m) {
  return 1ll * fac[n] * inv[m] % Mod * inv[n - m] % Mod;
}
int n, m, k;
inline int calc(int i) {
  int ans = 0;
  for (int x = 0; x <= m; x++)
    if (i - x <= k && i - x >= 0) ans = (ans + C(i, x)) % Mod;
  return ans;
}
int main() {
  init_binom();
  scanf("%d%d%d", &n, &m, &k);
  int ans = 0;
  for (int i = 0; i <= m + k; i++) {
    ans = (ans +
           1ll * C(n + i - 1, n - 1) * pow3[m + k - i] % Mod * calc(i) % Mod) %
          Mod;
  }
  printf("%d", ans);
  return 0;
}
