#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}。