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 $ - 入力は全て整数