#include <bits/stdc++.h>
using namespace std;
int a, b, c;
long long Prefix[5007], C[5007][5007];
inline void init() {
  memset(C, 0, sizeof(C));
  for (int i = 0; i <= 5000; i++) {
    C[i][0] = 1LL;
    for (int j = 1; j <= i; j++)
      C[i][j] = (C[i - 1][j - 1] + C[i - 1][j]) % 998244353;
  }
  Prefix[0] = 1LL;
  for (int i = 1; i <= 5000; i++)
    Prefix[i] = (Prefix[i - 1] * (long long)i) % 998244353;
}
int main() {
  init();
  scanf("%d %d %d", &a, &b, &c);
  long long temp1 = 0;
  for (int i = 0; i <= min(a, b); i++)
    temp1 =
        (temp1 + (((C[a][i] * C[b][i]) % 998244353) * Prefix[i]) % 998244353) %
        998244353;
  long long temp2 = 0;
  for (int i = 0; i <= min(a, c); i++)
    temp2 =
        (temp2 + (((C[a][i] * C[c][i]) % 998244353) * Prefix[i]) % 998244353) %
        998244353;
  long long temp3 = 0;
  for (int i = 0; i <= min(b, c); i++)
    temp3 =
        (temp3 + (((C[b][i] * C[c][i]) % 998244353) * Prefix[i]) % 998244353) %
        998244353;
  printf("%lld\n", ((temp1 * temp2) % 998244353 * temp3) % 998244353);
  return 0;
}
