#include #include #include #pragma GCC optimize("Ofast") #pragma GCC optimize("unroll-loops") using namespace std; using mint = atcoder::modint998244353; int op(int a, int b) { return max(a, b); } int e() { return 0; } int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); int K; cin >> K; cout << 10 << '\n'; for(int N = 1; N <= 10; N++) { vector p(N); for(int i = 0; i < N; i++) { p[i] = i; } mint ans = 0; do { atcoder::segtree seg1(N); for(int i = 0; i < N; i++) { seg1.set(p[i], seg1.prod(p[i], N) + 1); } if(seg1.all_prod() == 3) { atcoder::segtree seg2(N); for(int i = 0; i < N; i++) { seg2.set(p[i], seg2.prod(0, p[i]) + 1); } ans += mint(seg2.all_prod()).pow(K); } } while(next_permutation(p.begin(), p.end())); cout << ans.val(); if(N < 10) { cout << ' '; } } cout << '\n'; return 0; }