#1395. 拳击比赛
拳击比赛
说明
若干年后,退役了的Karry成为了一名职业拳手,然而他还是很菜。
在某一天,他即将参加一场一共$2^n$个选手参加的拳击比赛。
比赛的规则是这样的:
首先生成一个$1$到$2^n$的排列,然后,进行$n$轮淘汰赛,每轮中,相邻的两个选手进行比赛,然后决出胜者晋级到下一轮中。
所有选手的编号就是他的实力,理论上,实力低的选手是一定会败于实力高的选手的,Karry的实力总是1。
但他买通了比赛的举办方以及$m$个选手,使得自己可以在赛前安排初始的排列顺序,以及,让那些被买通的选手败于自己。
由于这样太过明显,于是Karry决定,让自己战胜的选手实力__尽量地__递增,确切的来说,Karry希望自己依次战胜的选手实力所构成序列的最长上升子序列长度$>=k$。
现在,Karry希望得知,他有多少种合法的安排,能使自己获胜。
输入格式
第一行输入三个数字$n,m,k$,如题所述。
第二行$m$个互不相同的数字,表示能买通的选手。
对于20%的数据:$n\leq 3$。
对于另30%的数据:$n\leq 9,k=1$。
对于100%的数据:$n\leq 9,1\leq m\leq 16,1\leq k \leq n$,数据中的$k$有梯度。
输出格式
输出一个整数表示答案模$998244353$的结果。
样例
2 2 2
3 4
8
提示
一共有8种情况,分别是{1,3,2,4},{1,3,4,2},{3,1,2,4},{3,1,4,2},{2,4,1,3},{4,2,1,3},{2,4,3,1},{4,2,3,1}。