火柴排队
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

金发少女 DK 出了一套比赛,众所周知 DK 并不是一个好出题人,这回他的数据造的太烂了,有一道字符串题被“先搜长串再搜短串”的奇怪算法草了过去,导致有可能有一部分选手的实际分数比他的估分高了 d 分

DK 惊奇地发现,每个人的实际排名和他估分的排名完全一致,他觉得这种事情简直太少见了。假设从 n 位选手中选 k 位增加 d 分的 种方案的概率均相等,DK 希望你告诉他每个选手排名不变的概率。答案模 998244353

形式化地说:给出 n 个正整数 a_i,即每个选手的估分和 d,随机使 k 个元素增加 d( 种可能发生的概率相等),求增加后的序列 a'_i 满足如果 那么 的概率

对于每个 ,你都要输出其对应的答案。答案模 998244353

具体来说,所求的概率应该是一个有理数 ,你要输出的是满足 的 x。保证这个方程有解

输入描述:

一行两个整数 n,d

接下来一行 n 个整数 a_i

输出描述:

输出 n 行每行一个整数,第 i 行的整数表示 k=i 时的答案
示例1

输入

复制
5 2
3 4 7 9 8

输出

复制
199648871
898419918
898419918
199648871
1

说明

当 k=1 时,共有5种可能
其中,给 a_2 或 a_4 加 d,满足条件
故概率为 \frac{2}{5},在 mod 998244353 意义下为 199648871

备注:

对于所有数据保证:,数据保证 a_i 各不相同