func_code_string: #include <bits/stdc++.h>   using namespace std;   using ll = long long;   const int MOD = 998244353;   int add(int x, int y) { return (x + y) % MOD; }   int sub(int x, int y) { return (x + MOD - y) % MOD; }   int mul(int x, int y) { return (1ll * x * y) % MOD; }   int modpow(int base, int exp) {     base %= MOD;     int result = 1;     while (exp > 0) {       if (exp & 1) result = (1ll * result * base) % MOD;       base = (1ll * base * base) % MOD;       exp >>= 1;     }     return result;   }   int modinv(int a) { return modpow(a, MOD - 2); }   int divide(int x, int y) { return mul(x, modinv(y)); }   int n, m;   int main() {     ios::sync_with_stdio(false);     cin >> n >> m;     int rlen = 0;     int roll1 = 1, roll2 = n + m;     for (int i = 1; i <= n + 1; ++i) {       rlen = add(rlen, divide(mul(roll1, i), roll2));       roll1 = mul(roll1, n + 1 - i);       roll2 = mul(roll2, n + m - i);     }     rlen = mul(rlen, m);     int I = 1;     for (int i = 1; i <= n; ++i) {       I = add(I, divide(m, i));     }     cout << mul(rlen, I) << endl;     return 0;   }   