#include <bits/stdc++.h>
int inv[300010];
int fac[1000010];
int p3[600010];
int main(void) {
  int n, m, k;
  scanf("%d%d%d", &n, &m, &k);
  p3[0] = 1;
  for (int i = 1; i <= m + k; i++) p3[i] = 3ll * p3[i - 1] % 1000000007;
  int max = n;
  if (max < m) max = m;
  if (max < k) max = k;
  inv[1] = 1;
  for (int i = 2; i <= max; i++) {
    inv[i] =
        1ll * (1000000007 - 1000000007 / i) * inv[1000000007 % i] % 1000000007;
  }
  inv[0] = 1;
  for (int i = 1; i <= max; i++) {
    inv[i] = 1ll * inv[i - 1] * inv[i] % 1000000007;
  }
  fac[0] = 1;
  for (int i = 1; i <= m + n + k; i++) {
    fac[i] = 1ll * i * fac[i - 1] % 1000000007;
  }
  long long ans = 0;
  for (int x = 0; x <= m; x++) {
    for (int y = 0; y <= k; y++) {
      ans = (ans + 1ll * fac[x + y + n - 1] * inv[x] % 1000000007 * inv[y] %
                       1000000007 * inv[n - 1] % 1000000007 *
                       p3[m + k - x - y] % 1000000007) %
            1000000007;
    }
  }
  printf("%lld", ans);
}
