#include <bits/stdc++.h>
const long long M = 1000000007;
int n, m, k;
long long f[3010], fi[3010], thr[3010], ans;
long long pw(long long x, long long k) {
  if (k == 1) return x;
  return (k % 2 ? x : 1) * pw(x * x % M, k / 2) % M;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  f[0] = fi[0] = thr[0] = 1;
  for (int i = 1; i <= 3005; i++) {
    f[i] = f[i - 1] * i % M;
    fi[i] = pw(f[i], M - 2);
    thr[i] = thr[i - 1] * 3 % M;
  }
  for (int i = 0; i <= m; i++) {
    for (int j = 0; j <= k; j++) {
      ans = (ans + f[n - 1 + i + j] * fi[n - 1] % M * fi[i] % M * fi[j] % M *
                       thr[m + k - i - j]) %
            M;
    }
  }
  printf("%lld\n", ans);
}
