编程题
### 问题描述
小然找到了一份神秘的密码文本,这份文本是一个长度为 $N$ 的字符串 $S$。他知道这个文本使用了一种名为元音矩阵的加密方案。
元音矩阵是一种独特的密码方案,它将字符串切割成多个片段,每个片段中恰好包含 $K$ 个元音。
你的任务是找出有多少种切割方法可以将字符串 $S$ 切割成满足元音矩阵方案的片段。由于答案可能非常大,所以请你将答案对 $10^9 + 7$ 取模后输出。
注意:
- 在小写英文字母中,字符 a,e,i,o 和 u 被认为是元音。
- 保证字符串 $S$ 中至少包含一个元音,且 $S$ 中的元音数量是 $K$ 的倍数。
### 输入格式
第一行输入一个整数 $T$,表示测试用例的数量。
每个测试用例包含两行:
- 第一行输入两个整数 $N$ 和 $K$,表示字符串的长度和每个片段中所需的元音数量。
- 第二行输入一个长度为 $N$ 的字符串 $S$,表示密码文本。
### 输出格式
对于每个测试用例,输出一行,表示切割字符串 $S$ 的方法数量对 $10^9 + 7$ 取模后的结果。
### 样例输入
```text
2
3 1
neo
10 2
babylonian
```
### 样例输出
```text
1
2
```
### 说明
- 样例中的第一个测试用例:只有一种切割方法可以将字符串切割成每个片段中都有 $1$ 个元音的片段,即 "ne" 和 "o"。
- 样例中的第二个测试用例:有两种切割方法可以将字符串切割成每个片段中都有 $2$ 个元音的片段,分别是 "babylo" 和 "nian",以及 "babylon" 和 "ian"。
### 评测数据范围
$1 \leq T \leq 10^5$。
$1 \leq N \leq 10^5$。
$1 \leq K \leq N$。
对于所有的测试用例,保证 $S$ 中的元音数量是 $K$ 的倍数。
所有测试用例中 $N$ 的和不超过 $10^5$。