#include <bits/stdc++.h>
using namespace std;
long long MOD = 1000000007LL;
long long modpow[5000], fact[5000], inv[5000], factinv[5000];
int n, m, p;
void init() {
  fact[0] = 1;
  for (int i = 1; i < 4000; i++) fact[i] = 1LL * fact[i - 1] * i % MOD;
  inv[1] = 1;
  for (int i = 2; i < 4000; i++)
    inv[i] = 1LL * inv[MOD % i] * (MOD - MOD / i) % MOD;
  factinv[0] = 1;
  for (int i = 1; i < 4000; i++)
    factinv[i] = 1LL * factinv[i - 1] * inv[i] % MOD;
}
long long ncr(long long n, long long r) {
  return 1LL * fact[n] * factinv[r] % MOD * factinv[n - r] % MOD;
}
long long dists(long long a, long long b, long long c) {
  return (ncr(a + b + c, a) * ncr(b + c, b)) % MOD;
}
int main() {
  modpow[0] = 1;
  for (int i = 1; i < 4000; i++) {
    modpow[i] = modpow[i - 1] * 3;
    modpow[i] %= MOD;
  }
  cin >> n >> m >> p;
  init();
  long long sum = 0;
  for (int i = 0; i <= m; i++) {
    for (int j = 0; j <= p; j++) {
      sum += modpow[i + j] * dists(n - 1, m - i, p - j);
      sum %= MOD;
    }
  }
  cout << sum << endl;
  return 0;
}
