#include <bits/stdc++.h>
using namespace std;
long long fact[5001];
long long C[5001][5001];
const long long mod = 998244353;
void Fact(int i) {
  if (i == 1) {
    fact[i] = 1;
    return;
  } else {
    Fact(i - 1);
    fact[i] = fact[i - 1] * i % mod;
    return;
  }
}
void find(int n, int k) {
  if (k > n) {
    C[n][k] = 0;
    return;
  }
  if (k == 1) {
    C[n][k] = (long long)n;
    return;
  }
  if (!C[n - 1][k]) find(n - 1, k);
  if (!C[n - 1][k - 1]) find(n - 1, k - 1);
  C[n][k] = (C[n - 1][k] + C[n - 1][k - 1]) % mod;
}
long long ans = 1;
long long solve(int x, int y) {
  ans = 1;
  for (int i = 1; i <= min(x, y); i++) {
    ans += C[x][i] * C[y][i] % mod * fact[i] % mod;
    ans %= mod;
  }
  return ans;
}
int main() {
  int a, b, c, d;
  cin >> a >> b >> c;
  d = max(max(a, b), c);
  Fact(d);
  for (int i = d; i >= 1; i--)
    for (int j = i; j >= 1; j--)
      if (!C[i][j]) find(i, j);
  cout << solve(a, b) * solve(b, c) % mod * solve(a, c) % mod << endl;
  return 0;
}
