给定一个字符串集合 $S$,集合中包含 $m$ 个由小写字母构成的字符串。
现在,我们需要构造一个字符串 $L$,要求:
- $L$ 的长度恰好为 $n$。
- $L$ 由小写字母构成。
- 集合 $S$ 中至少有 $k$ 个元素是 $L$ 的子串。
请计算满足条件的 $L$ 的数量。
输入格式
输入包含多组测试数据。
每组数据第一行包含三个整数 $n,m,k$。
接下来 $m$ 行,每行包含一个由小写字母构成的字符串,表示集合 $S$ 中的一个元素。
当输入 $n=0,m=0,k=0$ 时,表示输入结束,不做处理。
输出格式
每组数据输出一行结果,一个整数,表示满足条件的 $L$ 的数量对 $20090717$ 取模后的结果。
数据范围
每个输入最多包含 $100$ 组数据。
$1 \le n \le 25$,
$0 \le m \le 10$,
$0 \le k \le m$,
$S$ 中的字符串各不相同,且长度范围 $[1,10]$。
输入样例:
10 2 2
hello
world
4 1 1
icpc
10 0 0
0 0 0
输出样例:
2
1
14195065