丰川祥子一直在寻找成为人类的方法。上了大学之后,她加入了本校的 ACM 集训队,并开始打 Codeforces。
一天,她正如往常一样打算参加 Codeforces 线上比赛时,却不料点进去看到的是 Cloudflare 的验证码。这个验证码的要求居然是这样的:
我们定义 是
的一个连续的子串
(
)
若字符串 的某段子串
,那么我们就说
是字符串
的一个出现区间。
给定字符串 和字符串
,你需要选取一个标记集合
,使得对于每个出现区间
,都存在一个
,满足
。
例如,当 且
时,出现区间为
和
,而祥子只需要标记集合
即可覆盖两个区间,也可以选择标记集合
,这样也可以覆盖两个区间,她甚至可以选择标记集合
,但是这样就得点
下,很麻烦。
擅长键盘的 Saki 酱很快就敲出了 “在一个字符串找另一个字符串的所有出现位置” 的代码,但她希望以尽量少的标记次数来完成本次验证,尽快成为人类!
塑料看完这一集之后立刻把这个问题丢给了你。你的任务就是输出最小的满足条件的标记集合的大小。
输入包含多组测试数据。
第一行包括一个正整数
![]()
,表示数据组数;
接下来对于每组测试数据:
第一行输入两个正整数
和
![]()
,表示字符串
和
的长度;
接下来一行输入一个长度为
的字符串
;
接下来一行输入一个长度为
的字符串
。
保证所有字符串都由英文小写字母构成。
保证每个测试点所有测试数据的
之和与
之和均不超过
。
对于每组测试数据,输出一行一个非负整数
,表示最小的满足条件的标记集合的大小。