#include <bits/stdc++.h>
using namespace std;
using uint = unsigned int;
using ll = long long;
using pii = pair<int, int>;
using vi = vector<int>;
using ld = long double;
int read() {
  int i;
  scanf("%d", &i);
  return i;
}
const int mod = 1000000007;
ll modPow(ll a, ll p) {
  ll s = 1;
  for (int i = 0; i < 30; i++) {
    if ((p >> i) & 1) s = s * a % mod;
    a = a * a % mod;
  }
  return s;
}
ll modInv(ll a) { return modPow(a, mod - 2); }
ll fact[3341919];
ll Comb(ll x, ll y) {
  return fact[x] * modInv(fact[y]) % mod * modInv(fact[x - y]) % mod;
}
int main() {
  ll n = read() + 1, m = read() + 1, k = read() + 1;
  assert(n <= 1001);
  assert(m <= 1001);
  assert(k <= 1001);
  fact[0] = 1;
  for (int i = 1; i < 3341919; i++) fact[i] = fact[i - 1] * i % mod;
  ll ans = 0;
  for (int b = 0; b < m; b++)
    for (int c = 0; c < k; c++)
      ans = (ans + Comb(n - 2 + b + c, n - 2) * Comb(b + c, b) % mod *
                       modPow(3, m - 1 - b + k - 1 - c)) %
            mod;
  cout << ans << endl;
}
