#include <bits/stdc++.h>
using namespace std;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
const int MOD = 998244353;
const double EPS = 1e-9;
int a, b, c;
long long N[5015];
long long mpow(long long x, int n) {
  if (!n) return 1;
  long long tt = mpow(x, n >> 1);
  if (n & 1)
    return tt * tt % MOD * x % MOD;
  else
    return tt * tt % MOD;
}
long long get_c(int n, int k) {
  long long ans = N[n];
  long long tt = N[k] * N[n - k] % MOD;
  long long tres = mpow(tt, MOD - 2);
  return ans * tres % MOD;
}
int main() {
  N[0] = 1;
  for (int i = 1; i <= 5000; ++i) {
    N[i] = N[i - 1] * i % MOD;
  }
  scanf("%d%d%d", &a, &b, &c);
  long long ans = 1, cnt1 = 0, cnt2 = 0, cnt3 = 0;
  for (int i = 0; i <= min(a, b); ++i) {
    cnt1 += get_c(a, i) * get_c(b, i) % MOD * N[i] % MOD;
  }
  for (int i = 0; i <= min(a, c); ++i) {
    cnt2 += get_c(a, i) * get_c(c, i) % MOD * N[i] % MOD;
  }
  for (int i = 0; i <= min(b, c); ++i) {
    cnt3 += get_c(b, i) * get_c(c, i) % MOD * N[i] % MOD;
  }
  ans *= cnt1 % MOD;
  ans %= MOD;
  ans *= cnt2 % MOD;
  ans %= MOD;
  ans *= cnt3 % MOD;
  ans %= MOD;
  printf("%I64d", ans);
  return 0;
}
