Magical Multipliers

2 secs 1024 MB
ecottea's icon ecottea

問題文

あなたは NN 個の魔法のアイテムを持っています.各アイテム ii (1iN1 \le i \le N) には,倍率 did_i魔力 cic_i が設定されています.

あなたはこれらのアイテムの中から,好きな組み合わせ(空集合を含む)を選んで装備することができます.あるアイテムの集合 S{1,2,,N}S \subseteq \{1, 2, \dots, N\} を選んだとき,その「合計倍率」と「合計魔力」を以下のように定義します.

  • 合計倍率 DSD_S: 選んだアイテムの倍率の総乗.すなわち DS=iSdiD_S = \prod_{i \in S} d_i
  • 合計魔力 CSC_S: 選んだアイテムの魔力の総乗.すなわち CS=iSciC_S = \prod_{i \in S} c_i
    • ただし,空集合(S=S = \emptyset)の場合は D=1,C=1D_\emptyset = 1, C_\emptyset = 1 とします.

k=1,2,,Mk = 1, 2, \dots, M について,合計倍率 DSD_S がちょうど kk となるような全ての組み合わせ SS における「合計魔力 CSC_S」の総和を求めてください. 出力する値は,すべて 998,244,353998,244,353 で割った余りとします.

制約

  • 1N1051 \le N \le 10^5
  • 1M1051 \le M \le 10^5
  • 1diM1 \le d_i \le M
  • 0ci<998,244,3530 \le c_i < 998,244,353
  • 入力はすべて整数である.

入力

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

NN MM
d1d_1 c1c_1
d2d_2 c2c_2
\vdots
dNd_N cNc_N

出力

MM 行出力せよ.kk 行目には,合計倍率が kk となる組み合わせの魔力総和を 998,244,353998,244,353 で割った余りを出力すること.


サンプル

入力1
3 4
2 3
2 5
4 2
出力1
1
8
0
17
  • k=1k=1: 空集合のみ,魔力は 1.
  • k=2k=2: {アイテム1}\{アイテム1\} (魔力 3) と {アイテム2}\{アイテム2\} (魔力 5) の 2 通り,3+5=83 + 5 = 8
  • k=3k=3: 合計倍率が 3 になる組み合わせは存在しない,0.
  • k=4k=4: {アイテム1,アイテム2}\{アイテム1, アイテム2\} (魔力 3×5=153 \times 5 = 15) と {アイテム3}\{アイテム3\} (魔力 2) の 2 通り,15+2=1715 + 2 = 17

提出


Go (1.21)