#1477. [L3-3] pp 大丰收

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 7k1danWhen

题目描述

「一觉醒来,全世界 osu! 玩家的 pp* 暴涨了一万倍」

在 osu! 的最近更新中,玩家们可以创建自己的 team。Meguhine、currentId、ouxig 和 EIainaa 共同组建了 Ouxig Fan Club,简称 OUXI。

osu! 中玩家的 pp 上限为 mm。OUXI 现有 nn 名成员,其中第 ii 名成员的 pp 值为 aia_i。ouxig 在团队内部策划了一个猜 pp 游戏,Meguhine 和 currentId 都参与其中。

Meguhine 和 currentId 知道玩家 pp 上限是 mm,但不知道第 ii 名成员的 pp 值 aia_i

游戏规则如下:

  1. ouxig 等概率地从 [1,n][1, n]随机选取两个整数 iijj(允许相同);
  2. Meguhine 获知第 ii 位成员的 pp 值 aia_i
  3. currentId 获知第 jj 位成员的 pp 值 aja_j
  4. 双方共同得知选出的两位成员的「sync pp」值 ai&aja_i \& a_j&\& 表示按位与运算)。

即,Meguhine 只知道 m,ai,ai&ajm,a_i,a_i\&a_j,currentId 只知道 m,aj,ai&ajm,a_j,a_i\&a_j

游戏从 Meguhine 开始,双方轮流向对方陈述,直到某一方准确推断出 aia_iaja_j 的大小关系为止。

每轮当前玩家必须选择以下行为之一:

  • 声明"我不知道",接着对方开始下一轮;
  • 宣告"我知道了",并正确指出 aia_iaja_j 的大小关系(即判断 ai<aja_i<a_jai=aja_i=a_jai>aja_i>a_j),随即游戏结束。

Meguhine 与 currentId 能记忆所有对话内容,并且他们绝顶聪明,仅在完全确定时才会作出宣告。

现在 ouxig 想知道这个游戏结束的期望轮数。可以证明的,期望轮数一定是一个有理数 qp\frac{q}{p}。请告诉他答案对 998244353 取模后的结果。

一个有理数 qp\frac{q}{p} 对质数 mm 取模的值 xx,定义为满足 pxq(modm)px\equiv q \pmod{m}0xm10\le x\le m-1 的唯一整数解 xx


*^{\text{*}}Performance Points 又简称 pp,是 osu! 内致力于准确量化玩家实力的指标。(摘自 osu!wiki

输入格式

第一行是两个整数 n,mn,m,分别代表 OUXI 有多少名玩家以及 osu! 的玩家 pp 上限;

第二行是 nn 个整数,第 ii 个整数代表第 ii 名玩家有 aia_i pp 。

输出格式

共一行,一个整数,代表游戏期望结束的轮数对 998244353 取模的值。

样例

样例输入 1

3 3
1 2 3

样例输出 1

221832080

样例解释 1

期望结束轮数是 149\frac{14}{9},对 998244353 取模即 221832080。

样例输入 2

4 114514191
114514 1919810 259972 25676572

样例输出 2

311951369

数据范围与提示

对于所有测试数据,满足:

3n2×1053\le n\le2\times10^5

1m21474836471\le m\le 2147483647

i[1,n], 0aim\forall i\in[1,n],\space 0\le a_i\le m