#include #include #include using namespace std; using mint = atcoder::modint998244353; int main() { int N; cin >> N; vector dp{1}; while ((int)dp.size() < N * 2 + 1) { vector dpnxt(dp.size() + 2); for (int i = 0; i < (int)dpnxt.size(); ++i) { if (i and i + 1 < (int)dpnxt.size()) dpnxt.at(i) += dp.at(i - 1); const int l = i - 1, r = (int)dpnxt.size() - 1 - i - 1; if (l > 1) dpnxt.at(i) += dp.at(i - 2) * l * (l - 1) / 2; if (r > 1) dpnxt.at(i) += dp.at(i) * r * (r - 1) / 2; if (l > 0 and r > 0) dpnxt.at(i) += dp.at(i - 1) * l * r; } dp = dpnxt; } for (auto x : dp) cout << x.val() << '\n'; }