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

[joi2020ho_b]JJOOII 2 (JJOOII 2)

ビ太郎は友人のビバ子から誕生日プレゼントに JOI33 種類の文字からなる長さ NN の文字列 SS をもらった.

KK11 以上の整数とする.KK 個の文字 JKK 個の文字 OKK 個の文字 I をこの順に並べた文字列をレベル KK の JOI 文字列と呼ぶことにする.例えば,JJOOII はレベル 22 の JOI 文字列である.

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

  • 操作 11   文字列 SS の先頭の文字を消す.
  • 操作 22   文字列 SS の末尾の文字を消す.
  • 操作 33   文字列 SS の先頭でも末尾でもない文字を消す.

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

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


入力

入力は以下の形式で標準入力から与えられる.N,KN, K は整数である.SS は文字列である.

NN KK SS

出力

文字列 SS をレベル KK の JOI 文字列に変換するのに必要な操作 33 の回数の最小値を 11 行で出力せよ.ただし,どのように操作を行っても文字列 SS をレベル KK の JOI 文字列に変換できない場合は,代わりに \-1\-1 を出力せよ.


制約

  • 3leqqNleqq200,0003 \\leqq N \\leqq 200\\,000
  • 1leqqKleqqfracN31 \\leqq K \\leqq \\frac{N}{3}
  • SSJOI33 種類の文字からなる長さ NN の文字列である.

小課題

  1. (11 点) Nleqq21N \\leqq 21.
  2. (1212 点) Nleqq3,000N \\leqq 3\\,000.
  3. (8787 点) 追加の制約はない.

入力例 1

10 2
OJIJOIOIIJ

出力例 1

2

次のように操作を行うことで,文字列 SS をレベル KK のJOI文字列に変換できる.

  1. まず操作 11 を行う.文字列 SSJIJOIOIIJ になる.
  2. 次に操作 22 を行う.文字列 SSJIJOIOII になる.
  3. 次に操作 33 を行い,先頭から 22 文字目を消す.文字列 SSJJOIOII になる.
  4. 最後に操作 33 を行い,先頭から 44 文字目を消す.文字列 SSJJOOII になる.

22 回未満の操作 33 で変換することは不可能なので,22 を出力する.


入力例 2

9 3
JJJOOOIII

出力例 2

0

操作を行わなくてもよい.


入力例 3

9 1
IIIOOOJJJ

出力例 3

-1

この入力例では,どのように操作を行っても文字列 SS をレベル 11 の JOI 文字列に変換できない.