再见宣言与胖头鱼
题号:NC233447
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

现在有 n 条带有圣盾的胖头鱼,每次敌人会对一只胖头鱼攻击。
「攻击」:在炉石中,若随从 A 具有 a 点攻击力,随从 B 具有 b 点攻击力,则 A 攻击 BA 受到 b 点伤害,B 受到 a 点伤害。
「圣盾」:当拥有圣盾的胖头鱼受到伤害时,免疫这条鱼所受到的本次伤害。免疫伤害后,圣盾被破坏。
「胖头鱼」:在一条胖头鱼的圣盾被破坏后,给予其他所有没有圣盾的胖头鱼圣盾。初始时攻击力为 8 点,由于滑油机器人的存在,所以每次失去圣盾后这头胖头鱼的攻击力提升 a 点。(与游戏中不同的是,此题先计算加攻再计算伤害)
但为了防止胖头鱼阵型过于赖皮,所以在暗中提高了连续攻击同一只胖头鱼的概率。
具体地开始时所有胖头鱼的权重为 1 ,假设上次被攻击的胖头鱼已经被连续攻击了 k 次,那么它的权重变为 ,每只胖头鱼被攻击的概率等于它的权重和除以所有胖头鱼的权重和(如果一头鱼没有被攻击那么权重会回到 1)。
假设所有胖头鱼都不会死亡,现在对于 求在敌人攻击 i 次后敌人期望受到的伤害和。

输入描述:

一行,输入三个整数 

输出描述:

输出 m 行每行一个整数,第 i 行表示在敌人攻击 i 次后敌人期望受到的伤害和。
答案可以表示为 的形式() 的形式,而你需要输出 在模 998244353 意义下的值。
示例1

输入

复制
1 5 2

输出

复制
10
20
30
40
50
示例2

输入

复制
2 3 2

输出

复制
10
20
887328344
示例3

输入

复制
3 5 1

输出

复制
9
18
873463836
18717118
311015552

说明

对于可能看不懂题目的人这里给出一种情况的解释:
对于 n=2,m=5,a=2
依次攻击编号为 1,2,2,1,1 的胖头鱼。
第一次胖头鱼 1 失去圣盾,攻击变为 8+2=10,它造成伤害 10 ,概率是 \frac{1}{2}
第二次胖头鱼 1 获得圣盾,胖头鱼 2 失去圣盾,攻击变为 8+2=10,它造成伤害 10,概率是 \frac{1}{3}
第三次胖头鱼 2 攻击力不变,它造成伤害 10 ,概率是 \frac{2}{3}
第四次胖头鱼 2 获得圣盾,胖头鱼 1 失去圣盾,攻击力变为 10+2=12,它造成伤害 12 ,概率是 \frac{1}{4}
第五次胖头鱼 1 攻击力不变,受到一次伤害,它造成伤害 12 ,概率是 \frac{2}{3}
所有胖头鱼总共受伤 2 次,结束这个过程,造成总共伤害为 10+10+12+12+12=56 ,概率为 \frac{1}{2}\times \frac{1}{3}\times \frac{2}{3}\times \frac{1}{4}\times \frac{2}{3}=\frac{1}{54}