#P16721. 数

题目描述

你好~

我有 NN 个整数 a1,a2,,aNa_1,a_2,\ldots,a_N

在重排这 NN 个数的全部 N!N! 种方案中,我想知道有多少种方案满足:任意两个相邻数的乘积均小于等于给定整数 ww

答案对 998244353998244353 取模。

输入格式

第一行包含两个正整数 N,wN,w

第二行包含 NN 个整数 a1,a2,,aNa_1,a_2,\ldots,a_N,表示给定序列。

输出格式

输出一个整数,表示合法排列的数量对 998244353998244353 取模的结果。

样例 1

样例输入 1

3 8
2 -1 5

样例输出 1

2

样例 2

样例输入 2

6 5
1 1 4 5 1 4

样例输出 2

144

样例 3

样例输入 3

10 907900977
-34871 14 -1369364 -56 439813067 -100 -1398893 -4799474 58838 34

样例输出 3

362880

数据范围与约定

对于全部数据:

1N105,1\le N\le 10^5, 0ai,w109.0\le |a_i|,w\le 10^9.
测试点编号 NN 的范围 特殊性质
11 N10N\le 10
22 N20N\le 20
343\sim 4 N2000N\le 2000 ai0a_i\ge 0
565\sim 6 N105N\le 10^5
787\sim 8 N2000N\le 2000
9109\sim 10 N105N\le 10^5