题目描述
Bob 对排列有严格的要求。
对于一个排列 pi,Bob 称一个元素 pi 是前缀最值,当且仅当对于所有的 j<i,pj 都小于 pi。Bob 定义 f(pi) 为 pi 中所有前缀最值组成的序列。例如 f([1,3,2,4])=[1,3,4],f([4,3,2,1])=[4]。
Bob 现在有一个序列 {ai},他想知道,有多少个 1∼n 的排列 pi 使得 f(pi)=ai。由于这样的排列可能很多,你只需要输出答案对 998244353 取模的值。
输入格式
第一行一个整数 T 表示询问组数。
接下来 T 组询问:
每组询问第一行两个整数 n,k,代表 {pi} 的长度和 {ai} 的长度。
接下来一行 k 个整数,第 i 个整数代表 ai。
输出格式
共 T 行,每行一个整数,代表该组询问满足条件的排列数量对 998244353 取模的值。
3
3 1
3
4 2
2 4
5 3
1 3 5
2
3
3
数据范围
对于 30% 的数据,1≤k≤n≤9,1≤∑n≤9;
对于 60% 的数据,1≤k≤n≤103,1≤∑n≤103;
对于 100% 的数据,1≤T≤105,1≤k≤n≤2⋅105,1≤∑n≤2⋅105,1≤a1<a2<…<ak=n。