문제
ビ太郎は友人のビバ子から誕生日プレゼントに J, O, I の 3 種類の文字からなる長さ の文字列 をもらった.
を 以上の整数とする. 個の文字 J, 個の文字 O, 個の文字 I をこの順に並べた文字列をレベル の JOI 文字列と呼ぶことにする.例えば,JJOOII はレベル の JOI 文字列である.
ビ太郎はレベル の JOI 文字列が好きなので,以下の 3 種類の操作を任意の回数,任意の順番で行うことで,文字列 をレベル の JOI 文字列に変換することにした.
- 操作 1 文字列 の先頭の文字を消す.
- 操作 2 文字列 の末尾の文字を消す.
- 操作 3 文字列 の先頭でも末尾でもない文字を消す.
操作 3 を行うのは面倒なので,操作 3 を行う回数をできるだけ少なくして,文字列 をレベル の JOI 文字列に変換したい.
長さ の文字列 と 以上の整数 が与えられたとき,文字列 をレベル の JOI 文字列に変換するのに必要な操作 3 の回数の最小値を出力するプログラムを作成せよ.ただし,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない場合は,代わりに を出力せよ.
입력
入力は以下の形式で標準入力から与えられる., は整数である. は文字列である.
N K
S
출력
文字列 をレベル の JOI 文字列に変換するのに必要な操作 3 の回数の最小値を 1 行で出力せよ.ただし,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない場合は,代わりに を出力せよ.
제한
- .
- .
- は J, O, I の 3 種類の文字からなる長さ の文字列である.
예제 입력 1
10 2
OJIJOIOIIJ
예제 출력 1
2
次のように操作を行うことで,文字列 をレベル の JOI 文字列に変換できる.
- まず操作 1 を行う.文字列 は JIJOIOIIJ になる.
- 次に操作 2 を行う.文字列 は JIJOIOII になる.
- 次に操作 3 を行い,先頭から 2 文字目を消す.文字列 は JJOIOII になる.
- 最後に操作 3 を行い,先頭から 4 文字目を消す.文字列 は JJOOII になる.
回未満の操作 3 で変換することは不可能なので, を出力する.
예제 입력 2
9 3
JJJOOOIII
예제 출력 2
0
操作を行わなくてもよい.
예제 입력 3
9 1
IIIOOOJJJ
예제 출력 3
-1
この入力例では,どのように操作を行っても文字列 をレベル の JOI 文字列に変換できない.
서브태스크
- ( 점) .
- ( 점) .
- ( 점) 追加の制約はない.
코드를 제출하려면 로그인이 필요합니다.
로그인