#include <bits/stdc++.h>
using namespace std;
long long p[5001][5001];
long long f[5001];
long long M = 998244353;
void precompute() {
  f[0] = 1;
  p[0][0] = 1;
  for (long long n = 1; n <= 5000; ++n) {
    f[n] = (f[n - 1] * n) % M;
    p[n][0] = 1;
    for (long long k = 1; k <= n; ++k) {
      p[n][k] = (p[n - 1][k - 1] + p[n - 1][k]) % M;
    }
  }
}
int main() {
  std::cout.precision(15);
  std::ios_base::sync_with_stdio(false);
  precompute();
  long long a, b, c;
  cin >> a >> b >> c;
  long long ans1 = 0;
  long long ans2 = 0;
  long long ans3 = 0;
  for (long long i = 0; i <= min(a, b); ++i) {
    ans1 += (((p[a][i] * p[b][i]) % M) * f[i]) % M;
    ans1 %= M;
  }
  for (long long i = 0; i <= min(b, c); ++i) {
    ans2 += (((p[b][i] * p[c][i]) % M) * f[i]) % M;
    ans2 %= M;
  }
  for (long long i = 0; i <= min(a, c); ++i) {
    ans3 += (((p[a][i] * p[c][i]) % M) * f[i]) % M;
    ans3 %= M;
  }
  cout << (((ans1 * ans2) % M) * ans3) % M;
  return 0;
}
