#include <bits/stdc++.h>
using namespace std;
const int mod = 1000000007;
int N, M, K, fact[3007], inv[3007], factinv[3007], power[3007];
inline int ncr(int a, int b) {
  return 1LL * fact[a] * factinv[b] % mod * factinv[a - b] % mod;
}
int main() {
  cin >> N >> M >> K;
  power[0] = 1;
  for (int i = 1; i <= 3000; i++) power[i] = 1LL * power[i - 1] * 3 % mod;
  fact[0] = 1;
  for (int i = 1; i <= 3000; i++) fact[i] = 1LL * fact[i - 1] * i % mod;
  inv[1] = 1;
  for (int i = 2; i <= 3000; i++)
    inv[i] = 1LL * inv[mod % i] * (mod - mod / i) % mod;
  factinv[0] = 1;
  for (int i = 1; i <= 3000; i++)
    factinv[i] = 1LL * factinv[i - 1] * inv[i] % mod;
  int ret = 0;
  for (int i = 0; i <= M; i++) {
    for (int j = 0; j <= K; j++) {
      int r1 = N - 1, r2 = M - i, r3 = K - j;
      int res = 1LL * ncr(r1 + r2 + r3, r1) * ncr(r2 + r3, r2) % mod;
      ret = (ret + 1LL * res * power[i + j]) % mod;
    }
  }
  cout << ret << endl;
  return 0;
}
