#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-8;
int dcmp(double x) {
  if (fabs(x) <= eps) return 0;
  return (x > 0) ? 1 : -1;
};
namespace solver {
long long a, b, c;
const long long mod = 998244353;
long long fac[6666];
void init() {
  fac[0] = 1;
  for (int i = 1; i < 6000; i++) fac[i] = fac[i - 1] * i % mod;
}
long long Pow(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1) res *= a, res %= mod;
    b >>= 1;
    a *= a;
    a %= mod;
  }
  return res;
}
long long A(long long a, long long b) {
  return fac[a] * Pow(fac[a - b], mod - 2) % mod;
}
long long C(long long a, long long b) {
  return fac[a] * Pow(fac[a - b] * fac[b] % mod, mod - 2) % mod;
}
long long calc(long long a, long long b) {
  long long minv = min(a, b);
  long long maxv = max(a, b);
  long long res = 0;
  for (long long i = 1; i <= minv; ++i) {
    res = (res + (C(minv, i) * A(maxv, i) % mod)) % mod;
  }
  return res;
}
void solve() {
  init();
  scanf("%lld%lld%lld", &a, &b, &c);
  long long res = 1;
  res += calc(a, b);
  res %= mod;
  res += calc(a, c);
  res %= mod;
  res += calc(b, c);
  res %= mod;
  res += calc(a, b) * calc(a, c) % mod;
  res %= mod;
  res += calc(a, b) * calc(b, c) % mod;
  res %= mod;
  res += calc(a, c) * calc(b, c) % mod;
  res %= mod;
  res = (res + calc(a, b) * calc(a, c) % mod * calc(b, c) % mod) % mod;
  printf("%lld\n", res % mod);
}
}  // namespace solver
int main() {
  solver::solve();
  return 0;
}
