#P1151. 概括

概括

题目描述

Bob 对排列有严格的要求。

对于一个排列 pip_i,Bob 称一个元素 pip_i前缀最值,当且仅当对于所有的 j<ij<ipjp_j 都小于 pip_i。Bob 定义 f(pi)f(p_i)pip_i 中所有前缀最值组成的序列。例如 f([1,3,2,4])=[1,3,4]f([1,3,2,4]) = [1,3,4]f([4,3,2,1])=[4]f([4,3,2,1]) = [4]

Bob 现在有一个序列 {ai}\{a_i\},他想知道,有多少个 1n1 \sim n 的排列 pip_i 使得 f(pi)=aif(p_i) = a_i。由于这样的排列可能很多,你只需要输出答案对 998244353998244353 取模的值。

输入格式

第一行一个整数 TT 表示询问组数。

接下来 TT 组询问:

每组询问第一行两个整数 n,kn,k,代表 {pi}\{p_i\} 的长度和 {ai}\{a_i\} 的长度。

接下来一行 kk 个整数,第 ii 个整数代表 aia_i

输出格式

TT 行,每行一个整数,代表该组询问满足条件的排列数量对 998244353998244353 取模的值。

3
3 1
3
4 2
2 4
5 3
1 3 5
2
3
3

数据范围

对于 30%30\% 的数据,1kn91 \le k \le n \le 91n91 \le \sum n \le 9; 对于 60%60\% 的数据,1kn1031 \le k \le n \le 10^31n1031 \le \sum n \le 10^3; 对于 100%100\% 的数据,1T1051 \le T \le 10^51kn21051 \le k \le n \le 2 \cdot 10^51n21051 \le \sum n \le 2 \cdot 10^51a1<a2<<ak=n1 \le a_1 < a_2 < \ldots < a_k = n