#include <bits/stdc++.h>
using namespace std;
long long N, M, K;
vector<vector<long long> > comb;
void combination(int n) {
  comb.assign(n + 1, vector<long long>(n + 1, 0));
  for (int i = 0; i <= n; ++i) {
    comb[i][0] = 1;
    for (int j = 1; j <= i; ++j) {
      comb[i][j] = comb[i - 1][j - 1] + comb[i - 1][j];
      comb[i][j] %= 1000000007;
    }
  }
}
long long modpow(long long ori, long long po) {
  long long res = 1;
  while (po > 0) {
    if (po & 1) {
      res *= ori;
      res %= 1000000007;
    }
    ori *= ori;
    ori %= 1000000007;
    po >>= 1;
  }
  return res;
}
int main() {
  cin >> N >> M >> K;
  combination(N + M + K + 5);
  long long ret = 0;
  for (int m = 0; m <= M; m++) {
    for (int k = 0; k <= K; k++) {
      long long tmp;
      tmp = comb[m + k + N - 1][N - 1];
      tmp *= comb[m + k][m];
      tmp %= 1000000007;
      tmp *= modpow(3, M + K - m - k);
      tmp %= 1000000007;
      ret += tmp;
      ret %= 1000000007;
    }
  }
  cout << ret << endl;
}
