#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long fac[1000001] = {1, 1}, inv[1000001] = {1, 1}, ifac[1000001] = {1, 1};
inline long long C(int n, int m) {
  return fac[n] * ifac[m] % mod * ifac[n - m] % mod;
}
int n, m, k, maxn;
int main() {
  for (int register i = 2; i <= 1000000; ++i)
    fac[i] = fac[i - 1] * i % mod,
    inv[i] = (mod - mod / i) * inv[mod % i] % mod,
    ifac[i] = ifac[i - 1] * inv[i] % mod;
  scanf("%d%d%d", &n, &m, &k);
  --n;
  maxn = max(n, m + k);
  long long sum = 1, ans = 1;
  for (int register i = 1; i <= maxn; ++i) {
    sum = (sum << 1) % mod;
    if (i > m) sum = (sum + mod - C(i - 1, m)) % mod;
    if (i > k) sum = (sum + mod - C(i - 1, k)) % mod;
    cerr << "sum : " << sum << endl;
    ans = ans * 3 % mod;
    ans = (ans + C(n + i, i) * sum % mod) % mod;
    cerr << "ans : " << ans << endl;
  }
  cout << ans;
  return 0;
}
