#P5606. 小 K 与毕业旅行

小 K 与毕业旅行

题目背景

小 K 是一个刚刚高考完的高中生,他正在计划一次毕业旅行,但却被一些细节难住了,快来帮帮他!

题目描述

毕业旅行的计划上一共有 nn 个景点,大家会按某种顺序游览这些景点,每一个景点都会被游览恰好一次。

每个景点都有一个坐标 aia_i,从坐标为 aa 的景点坐车前往坐标为 bb 的景点会给大家造成 a×ba \times b 的不适感,每次下车后不适感都会清零(即不适感不会累加)。如果某次坐车的不适感超过了某个常数 ww,就会有人生病。

小 K 想问你,有多少种游览所有景点的顺序,使得全程都不会有人生病,答案对 998244353998244353 取模。

输入格式

第一行一个正整数 nn 和一个非负整数 ww

第二行 nn 个整数 a1,a2,,ana_1, a_2, \cdots, a_n

输出格式

输出一行一个整数,表示答案。

3 3
1 2 3
2
6 5
1 1 4 5 1 4
144
16 20
9 9 3 2 4 4 8 5 3 -1 -9 -1 -9 -8 -1 0
802901549

提示

样例解释

对于样例 11,有 2132-1-33123-1-2 两种合法的顺序。

数据范围

本题共有 1010 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。

对于所有数据,0w,ai1090 \le w, |a_i| \le 10^9 1n500001 \le n \le 50000

# nn aa 分值
1 n10n \le 10 无特殊限制 55
2 n20n \le 20
3 n2000n \le 2000 ai{1,w}a_i \in \{ 1,w \}
4 n2000n\le 2000 不同的 aia_i 只有三个,ai0a_i \ge 0
5 n200n\le 200 ai0a_i\ge 0 1010
6 n2000n\le 2000 ai0a_i\ge 0 1515
7 n50000n\le 50000 ai0a_i \ge 0 2020
8 n200n\le 200 无特殊限制 1515
9 n2000n\le 2000 1010
10 n50000n\le 50000