#include <bits/stdc++.h>
using namespace std;
const int N = 9e5 + 5, mmm = 1e9 + 7;
long long n, m, kni, sum, f[N], pv[N], q[N];
int cmp(int n, int m);
int main() {
  cin >> n >> m >> kni;
  n = n - 1;
  q[0] = 1;
  q[1] = 3;
  f[0] = pv[0] = f[1] = pv[1] = 1;
  for (int i = 2; i < N; i++)
    pv[i] = (long long)pv[mmm % i] * (mmm - mmm / i) % mmm;
  for (int i = 2; i < N; i++) {
    q[i] = q[i - 1] * 3ll;
    f[i] = (long long)f[i - 1] * i % mmm;
    pv[i] = (long long)pv[i - 1] * pv[i] % mmm;
  }
  if (m < kni) {
    int t;
    t = m;
    m = kni;
    kni = t;
  }
  for (int i = 0, j = 1; i <= m + kni; i++) {
    sum = (sum + (long long)cmp(n + i, n) * q[m + kni - i] % mmm * j) % mmm;
    if (i < kni)
      j = j * 2 % mmm;
    else if (i >= m)
      j = (j * 2ll - cmp(i, kni) - cmp(i, i - m)) % mmm;
    else
      j = (j * 2ll - cmp(i, kni)) % mmm;
  }
  if (sum < 0) sum = mmm + sum;
  printf("%d\n", sum);
  return 0;
}
int cmp(int n, int m) {
  return (long long)f[n] * pv[m] % mmm * pv[n - m] % mmm;
}
