AT_abc431_f [ABC431F] Almost Sorted 2
Description
長さ $ N $ の整数列 $ A=(A_1,A_2,\ldots,A_N) $ および正整数 $ D $ が与えられます。
$ A $ を並び替えることで得られる整数列 $ B=(B_1, B_2, \ldots, B_N) $ であって、次の条件を満たすものの個数を $ 998244353 $ で割ったあまりを求めてください。
- すべての $ i\ (1\leq i\leq N-1) $ に対して $ B_{i+1}\geq B_i-D $ が成り立つ。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ D $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $
Output Format
答えを出力せよ。
Explanation/Hint
### Sample Explanation 1
条件を満たす整数列は $ (1,2,2,5),(2,1,2,5),(2,2,1,5) $ の $ 3 $ つです。
### Constraints
- $ 2\leq N\leq 2\times 10^5 $
- $ 1\leq D\leq 10^6 $
- $ 1\leq A_i\leq 10^6 $
- 入力は全て整数