AT_bogosortcontest_div1_m I hate prime numbers

Description

> 素数が嫌いな soryuusi 君は、以下の問題を考えました。 正整数 $ N, M $ が与えられます。 長さ $ N $ の正整数列 $ A = (A_1, A_2, \dots, A_N) $ および $ B = (B_1, B_2, \dots, B_N) $ の組 $ (A, B) $ であって、以下の条件を全て満たすものを**良い数列の組**と呼びます。 - $ 1 \leq i \leq N $ を満たす全ての整数 $ i $ について、 $ 1 \leq A_i \leq N $ である。 - $ 1 \leq i \leq N $ を満たす全ての整数 $ i $ について、 $ B_i \leq B_{A_i} $ である。 - 任意の整数の組 $ (a, b) $ に対して、 $ (A_i, B_i) = (a, b) $ となる整数 $ i \ (1 \leq i \leq N) $ の個数は素数ではない。 各 $ m = 1, 2, \ldots, M $ について、良い数列の組 $ (A, B) $ のうち、 $ B $ の要素の最大値が $ m $ であるものの個数を $ 998244353 $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $

Output Format

各 $ m = 1, 2, \ldots, M $ に対する答えを以下の形式で出力せよ。 > $ \mathrm{ans}_1 $ $ \mathrm{ans}_2 $ $ \dots $ $ \mathrm{ans}_M $

Explanation/Hint

### Sample Explanation 1 良い数列の組 $ (A, B) $ であって $ B $ の要素の最大値が $ 1 $ となるものは、以下の $ 2 $ 個です。 - $ A = (1, 2), \ B = (1, 1) $ - $ A = (2, 1), \ B = (1, 1) $ 良い数列の組 $ (A, B) $ であって $ B $ の要素の最大値が $ 2 $ となるものは、以下の $ 6 $ 個です。 - $ A = (1, 1), \ B = (2, 1) $ - $ A = (1, 2), \ B = (1, 2) $ - $ A = (1, 2), \ B = (2, 1) $ - $ A = (1, 2), \ B = (2, 2) $ - $ A = (2, 1), \ B = (2, 2) $ - $ A = (2, 2), \ B = (1, 2) $ ### Constraints - $ 1 \leq N \leq 5 \times 10^4 $ - $ 1 \leq M \leq 10^5 $ - 入力される数値はすべて整数