func_code_string: #include <bits/stdc++.h>   const long long MOD = 998244353;   const int N = 6000;   std::vector<long long> fact(N), revfact(N);   long long Pow(long long a, long long b) {     long long rt = 1;     while (b) {       if (b & 1) rt = (rt * a) % MOD;       a = (a * a) % MOD;       b /= 2;     }     return rt;   }   long long C(int n, int k) {     return (((fact[n] * revfact[k]) % MOD) * revfact[n - k]) % MOD;   }   int main() {     const int n = 3;     std::vector<int> a(n);     for (int i = 0; i < n; i++) std::cin >> a[i];     fact[0] = 1;     for (int i = 1; i < N; i++) {       fact[i] = (fact[i - 1] * 1LL * i) % MOD;     }     for (int i = 0; i < N; i++) {       revfact[i] = Pow(fact[i], MOD - 2);       assert((fact[i] * revfact[i]) % MOD == 1);     }     long long ans = 1;     for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {         long long cur = 0;         for (int k = 0; k <= std::min(a[i], a[j]); k++) {           cur = (cur + (C(a[i], k) * C(a[j], k) % MOD) * fact[k]) % MOD;         }         ans = (ans * cur) % MOD;       }     }     std::cout << ans <<   n ;     return 0;   }   