#1480. 石碑的低语

石碑的低语

题目描述

你在一座古堡的石室中发现了一块刻满符文的石碑。 传说,只有足够长的符文段落才会蕴含力量。你的任务是从石碑上的符文中找到那个最强大的咒语。

设石碑上的符文由一个长度为 nn 的字符串 ss 表示。 你需要在其中选取一个连续子串作为咒语,并遵循以下规则:

1、只考虑长度 不小于 ll 的子串;

2、在这些子串中,选择出现次数最多的连续子串;

3、如果有多个连续子串出现次数相同,则选择其中长度最长的;

4、如果仍然无法区分,则选择最早出现在 ss 中的子串。

请输出最终选出的咒语。

*在字符串中,连续子串(substring)是指从原字符串中提取出的一个连续的字符序列。
具体来说,字符串 ss 的一个子串是由 ss 中某个起始位置 ll 和结束位置 rr(1lrn1 \le l \le r \le n)确定的,包含从位置 ll 到位置 rr 的所有字符。形式上表示为:

s[l;r]=slsl+1srs[l; r] = s_l s_{l+1} \dots s_r

例如,考虑字符串 s=abacabas = \texttt{abacaba},则:

  • s[1;3]=abas[1;3] = \texttt{aba}
  • s[2;4]=bacs[2;4] = \texttt{bac}
  • s[4;7]=cabas[4;7] = \texttt{caba}

需要注意的是,连续子串是连续的字符序列,不能跳跃。例如,"abc" 不是 "abacaba" 的子串,因为它不是连续的字符序列。

输入格式

第一行包含两个整数 n,ln, l —— 字符串的长度和咒语的最小长度要求 (1ln200)(1 \le l \le n \le 200)

第二行包含一个长度为 nn 的字符串 ss,仅由小写英文字母组成。

输出格式

一个字符串,表示所选出的咒语。

样例

6 2
ababab
aba
6 2
abcabc
abc
11 4
bbaabbaaaaa
bbaa