你有一个奇怪的键盘,上面有 $N$ 个常规按键和一个退格键。你从一个空字符串开始。在任何时刻,你可以按下 $N+1$ 个按键中的任意一个。按下第 $i$ 个常规按键会将字符串 $S_i$ 追加到当前字符串的末尾;按下退格键时,如果当前字符串长度小于 $K$,则什么也不做,否则删除当前字符串的最后 $K$ 个字符。
你想要构造一个字符串 $T$。请问这是否可能?如果可能,构造出字符串 $T$ 所需的最少按键次数是多少?
输入格式
第一行包含一个整数 $Q$,表示测试用例的数量。接下来是各个测试用例。
每个测试用例的第一行包含 $N$ 和 $K$,分别表示常规按键的数量和退格键删除的字符数。
接下来的 $N$ 行中,第 $i$ 行包含字符串 $S_i$,对应第 $i$ 个常规按键。
测试用例的最后一行包含需要构造的字符串 $T$。
数据范围
- $1 \le Q \le 100$
- $1 \le N \le 10^6$
- $1 \le K \le 5000$
- 所有测试用例中字符串 $S_i$ 的长度之和不超过 $10^6$
- 所有测试用例中字符串 $T$ 的长度之和不超过 $5000$
- 字符串 $S_i$ 和 $T$ 仅包含小写英文字母
输出格式
对于每个测试用例:
如果无法构造出字符串 $T$,则输出 $-1$。
否则,输出构造出字符串 $T$ 所需的最少按键次数。
样例
输入 1
2 2 3 defgh abc abcde 1 1 a b
输出 1
3 -1
说明
在第一个测试用例中,我们可以执行以下操作:
- 按下第二个常规按键。之后,我们得到
abc。 - 按下第一个常规按键。现在我们得到
abcdefgh。 - 按下退格键。现在我们得到所需的
abcde。
在第二个测试用例中,无法构造出所需的字符串。