有两个仅包含小写英文字母的字符串A和B。现在要从字符串A中取出k个\textbf{\underline{互不重叠}}的非空子串,然后把这k个子串按照其在字符串A中出现的顺序依次连接起来得到一个新的字符串,请问有多少种方案可以使得这个新串与字符串B相等?注意:子串取出的位置不同也认为是不同的方案。
第一行是三个正整数n,m,k,分别表示字符串A的长度,字符串B的长度,以及问题描述中所提到的k,每两个整数之间用一个空格隔开。
第二行包含一个长度为n的字符串,表示字符串A。
第三行包含一个长度为m的字符串,表示字符串B。
输出共一行,包含一个整数,表示所求方案数。由于答案可能很大,所以这里要求输出答案对1 000 000 007取模的结果。
6 3 1 aabaab aab
2
6 3 2 aabaab aab
7
所有合法方案如下:(加下划线的部分表示取出的子串)
样例1:\underline{aab}aab / aab\underline{aab}
样例2:\underline{aab}aab /\underline{a}aba\underline{ab}/ a\underline{a}ba\underline{ab}/ aab\underline{aab}
\underline{aab}aab /\underline{aa}baa\underline{b}/ aab\underline{aab}
对于第1组数据:1\le n\le500,1\le m\le50,k=1;
对于第2组至第3组数据:1\le n\le500,1\le m\le50,k=2;
对于第4组至第5组数据:1\le n\le500,1\le m\le50,k=m;
对于第1组至第7组数据:1\le n\le500,1\le m\le50,1\le k\le m;
对于第1组至第9组数据:1\le n\le1000,1\le m\le100,1\le k\le m;
对于所有10组数据:1\le n\le1000,1\le m\le200,1\le k\le m。