#include #include using namespace std; using mint = atcoder::modint998244353; const int MAXX = 3e6; mint fac[MAXX], finv[MAXX], inv[MAXX]; void TTT(){ const int MOD = mint::mod(); fac[0] = fac[1] = 1; finv[0] = finv[1] = 1; inv[1] = 1; for(int i = 2; i < MAXX; ++i){ fac[i] = fac[i-1]*i; inv[i] = MOD - inv[MOD%i]*(MOD/i); finv[i] = finv[i-1] * inv[i]; } } mint com(int n, int r){ if(n < r) return 0; if(n < 0 || r < 0) return 0; return fac[n] * finv[r] * finv[n - r]; } int main(){ ios::sync_with_stdio(false); cin.tie(0); TTT(); int n, m; cin >> n >> m; // 以上の場合 vector ijyou(m+1); for(int i = 0; i <= m; ++i){ if(i*n > m) break; ijyou[i] = com(m - i*n + n, n); } // (n = 1 or x = 0) : -n if(n == 1){ for(int i = 0; i <= m; ++i) ijyou[i] -= n; }else{ ijyou[0] -= n; } // ちょうど x の個数 vector cho(m); for(int i = 0; i < m; ++i){ cho[i] = ijyou[i] - ijyou[i+1]; } mint z = 0; for(int i = 0; i < m; ++i){ z += i * cho[i]; } z /= ijyou[0]; cout << z.val() << '\n'; return 0; } // サンプル 3 は物理好きさんの誕生日だ~~~~!