#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int SIZE = 1e6 + 10;
long long t[3100], C[3100][3100];
void ADD(long long &x, long long v) { x = (x + v) % MOD; }
int main() {
  for (int i = 0; i < (3100); ++i) {
    t[i] = i ? (t[i - 1] * 3 % MOD) : 1;
    C[i][0] = 1;
    for (int j = (1); j < (i + 1); ++j)
      C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % MOD;
  }
  int N, M, K;
  scanf("%d%d%d", &N, &M, &K);
  if (N > 1000 || M > 1000 || K > 1000) return 0;
  long long an = 0;
  for (int i = 0; i < (M + 1); ++i)
    for (int j = 0; j < (K + 1); ++j) {
      ADD(an, C[N - 1 + j + i][N - 1] * C[i + j][i] % MOD * t[M + K - i - j]);
    }
  cout << an << endl;
  return 0;
}
