#ys007. 回文子串

回文子串

给你一个长度为 NN 的字符串 SS

你有一个空字符串 UU,你可以进行下述操作任意多次。

  • SS 接到 UU 的末尾。也就是说,把 UU 变成 USUS

要使 UU 含有一个长度至少是 MM 的回文子串,至少要操作多少次?

如果不可能达成目标,输出 -1

一个输入文件里有 TT 组数组。

限制

  • 1T2×1051 \le T \le 2\times 10^5
  • 1N2×1051 \le N \le 2\times 10^5
  • 1M1091 \le M \le 10^9
  • SS 由小写英文字母构成。
  • 一个输入文件里 NN 的总和不超过 2×1052\times 10^5
  • TTNNMM 是整数。

本题有 50 个测试点,其中有 19 个测试点满足 TT 组测试的 MM 之和小于 2×1062\times 10^6

输入

从文件 palindrome.in 中读入数据。

第一行包含一个整数 TT。接下来有 2T2T 行,每两行表示一组测试。每组测试的第一行包含两个整数 N,MN, M,第二行包含一个字符串 SS

输出

输出到文件 palindrome.out 中。

输出 TT 行。第 ii 行应包含一个整数,表示第 ii 组测试的答案。

样例输入 1

3
4 10
acbc
3 2357
aba
4 2
sepa

样例输出 1

3
786
-1

对于第一组测试,3 次操作过后,U=U = acbcacbcacbcUU 的子串 cbcacbcacbc 是一个长度是 1111 的回文串。

附件样例