#include <bits/stdc++.h>
const int mod = 1000 * 1000 * 1000 + 7;
using namespace std;
int fact[200005];
int inv[200005];
int pow3[200005];
int mult(int a, int b) { return (a * (long long)b) % mod; }
int add(int a, int b) { return a + b >= mod ? a + b - mod : a + b; }
int modPow(int a, int step) {
  int ans = 1;
  while (step) {
    if (step & 1) {
      ans = mult(ans, a);
    }
    step >>= 1;
    a = mult(a, a);
  }
  return ans;
}
int c(int n, int k) { return mult(fact[n], mult(inv[k], inv[n - k])); }
int ways(int x, int y, int z) { return mult(c(x + y + z, z), c(x + y, y)); }
int x, y, z;
int main() {
  pow3[0] = 1;
  for (int i = 1; i <= 200000; i++) {
    pow3[i] = mult(pow3[i - 1], 3);
  }
  cin >> x >> y >> z;
  fact[0] = inv[0] = 1;
  for (int i = 1; i <= 200000; i++) {
    fact[i] = mult(fact[i - 1], i);
    inv[i] = modPow(fact[i], mod - 2);
  }
  int ans = 0;
  for (int i = 0; i <= y; i++) {
    for (int j = 0; j <= z; j++) {
      ans = add(ans, mult(ways(x - 1, y - i, z - j), pow3[i + j]));
    }
  }
  cout << ans;
  return 0;
}
