小 K 与毕业旅行

题目背景

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

题目描述

毕业旅行的计划上一共有 $n$ 个景点,大家会按某种顺序游览这些景点,每一个景点都会被游览恰好一次。 每个景点都有一个坐标 $a_i$,从坐标为 $a$ 的景点坐车前往坐标为 $b$ 的景点会给大家造成 $a \times b$ 的不适感,每次下车后不适感都会清零(即不适感不会累加)。如果某次坐车的不适感超过了某个常数 $w$,就会有人生病。 小 K 想问你,有多少种游览所有景点的顺序,使得全程都不会有人生病,答案对 $998244353$ 取模。

输入输出格式

输入格式


第一行一个正整数 $n$ 和一个非负整数 $w$。 第二行 $n$ 个整数 $a_1, a_2, \cdots, a_n$。

输出格式


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

输入输出样例

输入样例 #1

3 3
1 2 3

输出样例 #1

2

输入样例 #2

6 5
1 1 4 5 1 4

输出样例 #2

144

输入样例 #3

16 20
9 9 3 2 4 4 8 5 3 -1 -9 -1 -9 -8 -1 0

输出样例 #3

802901549

说明

**样例解释** 对于样例 $1$,有 $2-1-3$ 和 $3-1-2$ 两种合法的顺序。 **数据范围** 本题共有 $10$ 个子任务,你需要通过一个子任务内的所有测试点才能取得这个子任务的分数。 对于所有数据,$0 \le w, |a_i| \le 10^9 $,$1 \le n \le 50000$。 | # | $n$ | $a$ | 分值 | | ---- | ---- | ---- | ---- | | 1 | $n \le 10$ | 无特殊限制 | $5$ | | 2 | $n \le 20$ | 无特殊限制 | $5$ | | 3 | $n \le 2000 $ | $a_i \in \{ 1,w \}$ | $5$ | | 4 | $n\le 2000 $ | 不同的 $a_i$ 只有三个,$a_i \ge 0$ | $5$ | | 5 | $n\le 200 $ | $a_i\ge 0 $ | $10$ | | 6 | $n\le 2000$ | $a_i\ge 0$ | $15$ | | 7 | $n\le 50000$ | $a_i \ge 0 $ | $20$ | | 8 | $n\le 200 $ | 无特殊限制 | $15$ | | 9 | $n\le 2000 $ | 无特殊限制 | $10$ | | 10 | $n\le 50000 $ | 无特殊限制 | $10$ |