#agc050d. [agc050_d]Shopping

[agc050_d]Shopping

问题描述

NN 个编号为 11NN 的人和 KK 个编号为 11KK 的物品。他们玩一个逐轮进行的游戏。第一轮是第 11 个人,第二轮是第 22 个人,然后是第 33 个人,ldots\\ldots,直到第 NN 个人,然后又是第 11 个人,ldots\\ldots,以此类推,直到所有物品都被拿走。

在每一轮中,发生以下情况:

  • 如果这个人已经获得了一个物品,则不发生任何事情。
  • 否则,他从尚未选择的物品中随机选择一个,并将其秘密告诉游戏的裁判Snuke。如果该物品已被其他人拿走,什么也不会发生;否则他就赢得了这个物品。

对于每个 ii,计算第 ii 个人获胜的概率,取模 998,244,353998,244,353(如“注释”部分所述)。

注释

  • 所有随机选择都是独立的。
  • 我们可以证明游戏总是在有限的步数内结束。
  • 我们还可以证明,每当玩家被要求选择一个物品时,他至少有一个他还没有选择的物品。
  • 我们还可以证明这些概率是有理数。当打印概率时,首先将其写成分数 fracyx\\frac{y}{x} 的形式,其中 x,yx, y 是整数,xx 不能被 P=998,244,353P = 998,244,353 整除(在问题的约束条件下,这种表示总是可能的)。然后,你需要打印一个整数 zz,满足 xzequivypmodPxz \\equiv y \\pmod{P},且 0leqz<P10 \\leq z < P - 1

约束条件

  • 1leqKleqNleq401 \\leq K \\leq N \\leq 40
  • 输入中的所有值都是整数。

输入

输入以以下格式从标准输入给出:

NN KK

输出

打印 NN 行。第 ii 行,打印第 ii 个人获胜的概率,取模 998,244,353998,244,353


示例输入 1

3 2

示例输出 1

1
249561089
748683265
  • 首先,第 11 个人选择一个物品(称之为物品 pp)并赢得它。
    • 然后,有 1/21/2 的概率,第 22 个人在下一轮选择另一个物品并赢得它,游戏结束。
    • 1/21/2 的概率,第 22 个人选择 pp,他没有赢得它,然后第 33 个人轮到。
      • 1/41/4 的概率,第 33 个人选择另一个物品,赢得它,游戏结束。
      • 1/41/4 的概率,第 33 个人再次选择 pp。然后,下一轮是第 11 个人的轮次,因为他已经赢得了一个物品,所以什么也不发生。然后,在下一轮中,第 22 个人肯定会选择另一个物品,因为他在上一轮中已经选择了 pp,所以他这一次赢得了一个物品,游戏结束。

综上所述,第 1,2,31, 2, 3 个人获得物品的概率分别为 1,frac34,frac141, \\frac{3}{4}, \\frac{1}{4}


示例输入 2

4 3

示例输出 2

1
314262112
767169272
915057324

这些概率是 1,frac4754,frac77108,frac5121, \\frac{47}{54}, \\frac{77}{108}, \\frac{5}{12}


示例输入 3

40 10

示例输出 3

1
868517173
27621563
837064957
222682471
512462123
662169358
927654899
421237429
47896491
462367772
888812171
300869511
63754652
144548024
358216674
895724239
274552277
722622637
946769993
579325471
777654313
142897955
607284898
8038340
863909530
63295741
862961672
335905745
944425523
358698956
299986928
847582651
197657467
180361665
412489246
762713624
410322243
646538576
79047758