AT_abc428_b [ABC428B] Most Frequent Substrings
Description
英小文字からなる長さ $ N $ の文字列 $ S $ が与えられます。
長さ $ K $ の文字列 $ t $ の**出現回数**を、以下を満たす整数 $ i $ の個数として定義します。
- $ 1 \leq i \leq N-K+1 $
- $ S $ の $ i $ 文字目から $ i+K-1 $ 文字目までからなる部分文字列が $ t $ に一致する。
長さ $ K $ の文字列に対する出現回数の最大値 $ x $ を求めてください。 また、出現回数が $ x $ となるような長さ $ K $ の文字列をすべて辞書順昇順に出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ K $ $ S $
Output Format
$ 2 $ 行出力せよ。
$ 1 $ 行目には、長さ $ K $ の文字列に対する出現回数の最大値 $ x $ を出力せよ。
$ 2 $ 行目には、出現回数が $ x $ となるような長さ $ K $ の文字列を辞書順昇順に、空白区切りで出力せよ。
Explanation/Hint
### Sample Explanation 1
出現回数 $ 2 $ の文字列として、以下が挙げられます。
- 文字列 `ovo` について、 $ i=1,7 $ が条件を満たすことから、`ovo` の出現回数は $ 2 $ です。
- 文字列 `owo` について、 $ i=3,5 $ が条件を満たすことから、`owo` の出現回数は $ 2 $ です。
出現回数が $ 2 $ よりも大きいような長さ $ 3 $ の文字列は存在しないので、求める最大値は $ 2 $ です。
一方で、出現回数が $ 2 $ よりも小さい文字列として、以下が挙げられます。
- 文字列 `vow` について、 $ i=2 $ が条件を満たすことから、`vow` の出現回数は $ 1 $ です。
- 文字列 `ooo` について、条件を満たす $ i $ が存在しないことから、`ooo` の出現回数は $ 0 $ です。
### Constraints
- $ N, K $ は整数
- $ S $ は英小文字からなる長さ $ N $ の文字列
- $ 1 \leq K \leq N \leq 100 $