template <classT> inlinevoidchmin(T &x, const T &y){ if (x > y) { x = y; } } template <classT> inlinevoidchmax(T &x, const T &y){ if (x < y) { x = y; } }
constint mod = 998244353;
inlinevoidadd(int &x, constint &y){ x += y; if (x >= mod) x -= mod; } inlinevoiddec(int &x, constint &y){ x -= y; if (x < 0) x += mod; }
template <classT> constexprintqpow(int a, T b, int p){ int ans = 1; for (; b; b >>= 1) { if (b & 1) ans = 1ll * ans * a % p; a = 1ll * a * a % p; } return ans; }
fact[0] = 1; for (int i = 1; i <= n; i ++) { fact[i] = 1ll * fact[i - 1] * i % mod; } facv[n] = qpow(fact[n], mod - 2, mod); for (int i = n - 1; i >= 0; i --) { facv[i] = 1ll * facv[i + 1] * (i + 1) % mod; } }
intbinom(int n, int m){ if (n < m || m < 0) { return0; } return1ll * facv[m] * facv[n - m] % mod * fact[n] % mod; } };
voidwork(){ std::cin >> n;
BinomCoef bc(n * 2);
for (int k = 1; k <= (n - 1) / 2; k ++) { int ans = 1; for (int x = 2 * k; x < n; x += 2 * k) { add(ans, bc.binom(n, x)); dec(ans, bc.binom(n - x + 2 * k - 1, 2 * k - 1)); } std::cout << ans << ' '; } std::cout << '\n'; }