#include <bits/stdc++.h>
const long long MOD = 998244353;
const int N = 6000;
std::vector<long long> fact(N), revfact(N);
long long Pow(long long a, long long b) {
  long long rt = 1;
  while (b) {
    if (b & 1) rt = (rt * a) % MOD;
    a = (a * a) % MOD;
    b /= 2;
  }
  return rt;
}
long long C(int n, int k) {
  return (((fact[n] * revfact[k]) % MOD) * revfact[n - k]) % MOD;
}
int main() {
  const int n = 3;
  std::vector<int> a(n);
  for (int i = 0; i < n; i++) std::cin >> a[i];
  fact[0] = 1;
  for (int i = 1; i < N; i++) {
    fact[i] = (fact[i - 1] * 1LL * i) % MOD;
  }
  for (int i = 0; i < N; i++) {
    revfact[i] = Pow(fact[i], MOD - 2);
    assert((fact[i] * revfact[i]) % MOD == 1);
  }
  long long ans = 1;
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      long long cur = 0;
      for (int k = 0; k <= std::min(a[i], a[j]); k++) {
        cur = (cur + (C(a[i], k) * C(a[j], k) % MOD) * fact[k]) % MOD;
      }
      ans = (ans * cur) % MOD;
    }
  }
  std::cout << ans << "\n";
  return 0;
}
