AT_abc425_e [ABC425E] Count Sequences 2

Description

正整数 $ N $ および長さ $ N $ の正整数列 $ C=(C_1,C_2,\ldots,C_N) $ が与えられます。 次の条件をすべて満たす正整数列の個数を与えられた正整数 $ M $ で割った余りを求めてください。 - 数列の要素はすべて $ 1 $ 以上 $ N $ 以下である。 - 各 $ i=1,2,\ldots,N $ に対し、 $ i $ は数列にちょうど $ C_i $ 個含まれる。 $ T $ 個のテストケースが与えられるので、それぞれについて答えを求めてください。ただし、 $ M $ は $ T $ 個すべてのテストケースにおいて共通です。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ T $ $ M $ $ \mathrm{case}_1 $ $ \mathrm{case}_2 $ $ \vdots $ $ \mathrm{case}_T $ $ i $ 番目のテストケース $ \mathrm{case}_i $ は以下の形式で与えられる。 > $ N $ $ C_1 $ $ C_2 $ $ \ldots $ $ C_N $

Output Format

$ T $ 行出力せよ。 $ i $ 行目には $ i $ 番目のテストケースの答えを出力せよ。

Explanation/Hint

### Sample Explanation 1 $ 1 $ 番目のテストケースについて、条件を満たす数列は $ (1,1,2,2),(1,2,1,2),(1,2,2,1),(2,1,1,2),(2,1,2,1),(2,2,1,1) $ の $ 6 $ 個です。 ### Constraints - $ 1\leq T\leq 10^5 $ - $ 2\leq M\leq 10^9 $ - $ 1\leq N $ - $ 1\leq C_i $ - $ \sum_{i=1}^N C_i\leq 5000 $ - 全てのテストケースに対する $ N $ の総和は $ 3\times 10^5 $ 以下 - 入力はすべて整数