H - Huge Segment Tree Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MB

配点 : 100

問題文

整数 i,j (0 \leq i \leq K, 0 \leq j < 2^{K-i}) を用いて [2^i j, 2^i (j+1)) と表せる区間をセグメント木的な区間と呼ぶことにします。

整数 l,r (0 \leq l < r \leq 2^K) に対し、区間 [l,r) をセグメント木的な区間の和集合として表す方法は必ず 1 つ以上あることが証明できます。このときの用いる区間の最小個数を f(l,r) と表します。

k = 1,2,\dots,2K-2 それぞれに対して、以下の問題を解いてください。

整数 l,r (0 \leq l < r \leq 2^K) の組であって、f(l,r)=k となるような組の総数を 998244353 で割った余りを求めてください。

制約

  • 入力は全て整数
  • 2 \leq K \leq 5 \times 10^5

入力

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

K

出力

k = 1,2,\dots,2K-2 のときの問題の答えをこの順に空白区切りで出力せよ。


入力例 1

3

出力例 1

15 14 6 1

たとえば k = 4 のときは、f(l, r) = k となるのは l = 1, r = 7 のときのみなので、1 を出力します。


入力例 2

5

出力例 2

63 110 132 114 70 30 8 1

入力例 3

10

出力例 3

2047 4975 10896 21772 38360 58724 77184 86312 81448 64324 42112 22576 9744 3304 848 155 18 1