#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; #include using mint = atcoder::modint998244353; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n, m; cin >> n >> m; vector fact(m + 1, 1); for (int i = 1; i <= m; ++i) fact[i] = fact[i - 1] * i; vector factinv(m + 1, 1); factinv[m] = fact[m].inv(); for (int i = m; i > 0; --i) factinv[i - 1] = factinv[i] * i; auto C = [&](int n, int r) -> mint { if (n < 0 || n - r < 0 || r < 0) return 0; return fact[n] * factinv[n - r] * factinv[r]; }; mint ans = 0; rep(i, m / n + 1) ans += C(m - i * (n - 1), i); if (n == 1) ans = 1; cout << ans.val() << '\n'; return 0; }