#joi2020hob. [joi2020ho_b]JJOOII 2 (JJOOII 2)

[joi2020ho_b]JJOOII 2 (JJOOII 2)

将以下文本翻译成中文,并显示为markdown格式:

ビ太郎は友人のビバ子から誕生日プレゼントに `J`,`O`,`I` の $3$ 種類の文字からなる長さ $N$ の文字列 $S$ をもらった.

$K$ を $1$ 以上の整数とする.$K$ 個の文字 `J`,$K$ 個の文字 `O`,$K$ 個の文字 `I` をこの順に並べた文字列を**レベル $K$ の JOI 文字列**と呼ぶことにする.例えば,`JJOOII` はレベル $2$ の JOI 文字列である.

ビ太郎はレベル $K$ の JOI 文字列が好きなので,以下の $3$ 種類の操作を任意の回数,任意の順番で行うことで,文字列 $S$ をレベル $K$ の JOI 文字列に変換することにした.

*   **操作 $1$**   文字列 $S$ の先頭の文字を消す.
*   **操作 $2$**   文字列 $S$ の末尾の文字を消す.
*   **操作 $3$**   文字列 $S$ の先頭でも末尾でもない文字を消す.

操作 $3$ を行うのは面倒なので,操作 $3$ を行う回数をできるだけ少なくして,文字列 $S$ をレベル $K$ の JOI 文字列に変換したい.

長さ $N$ の文字列 $S$ と $1$ 以上の整数 $K$ が与えられたとき,文字列 $S$ をレベル $K$ の JOI 文字列に変換するのに必要な操作 $3$ の回数の最小値を出力するプログラムを作成せよ.ただし,どのように操作を行っても文字列 $S$ をレベル $K$ の JOI 文字列に変換できない場合は,代わりに $−1$ を出力せよ.

输入

从标准输入中按以下格式给出输入。N和K是整数。S是字符串。

N K S

输出

在一行中输出将字符串S转换为级别K的JOI字符串所需的操作3的最小次数。但是,如果无论如何操作,都无法将字符串S转换为级别K的JOI字符串,则输出-1。


约束条件

  • 3N200,0003 \leqq N \leqq 200,000
  • 1KN31 \leqq K \leqq \frac{N}{3}
  • S是由J、O、I三种字符组成的长度为N的字符串。

输入样例1

10 2
OJIJOIOIIJ

输出样例1

2

可以通过以下操作将字符串S转换为级别K的JOI字符串:

  1. 首先执行操作1。字符串S变为JIJOIOIIJ
  2. 然后执行操作2。字符串S变为JIJOIOII
  3. 然后执行操作3,删除第二个字符。字符串S变为JJOIOII
  4. 最后执行操作3,删除第四个字符。字符串S变为JJOOII

由于无法在少于2次操作3的情况下进行转换,因此输出2。


输入样例2

9 3
JJJOOOIII

输出样例2

0

无需进行任何操作。


输入样例3

9 1
IIIOOOJJJ

输出样例3

-1

对于此示例,无论如何操作,都无法将字符串S转换为级别1的JOI字符串。