#joi2012ho1. [joi2012ho1]JJOOII (JJOOII)

[joi2012ho1]JJOOII (JJOOII)

JOI (日本情報オリンピック) の本選に向けてプログラミングの練習をしていたあなたは,今年度の JOI の予選の問題には数値を扱う問題ばかりが出題され,文字列を扱う問題がなかったことに気がついた.そこであなたは,こっそり文字列の問題に強くなってライバルたちに差をつけることにした.

JOIの過去問を眺めていると,JOI33 種類の文字からなる文字列に慣れておく必要がありそうなことがわかった.そこで,そのような文字列について考えよう.あなたは「与えられた文字列が JOI という部分文字列をもつかどうかを答えよ」という問題を思いついたものの,これはすぐに解けてしまった.もっとレベルの高い問題を解きたいあなたは,以下のような問題を作った.

文字列 tt が文字列 ss部分文字列であるとは,tt の先頭および末尾に何文字か (00 文字でもよい) を付け足すと ss になることである.たとえば,JJOOIIOJJOOIIOJOI の部分文字列である.一方,JOIJOOI の部分文字列ではない.

また,00 以上の整数 kk に対し,レベル kk の JOI 列とは,kk 個の文字 Jkk 個の文字 Okk 個の文字 I をこの順に並べた文字列のことであるとする.たとえば,JJOOII はレベル 22 の JOI 列である.

与えられた文字列の部分文字列である JOI 列のうち,レベルが最大のものを求めたい.

課題

JOI33 種類の文字からなる長さ NN の文字列 SS が与えられたとき,レベル kk の JOI 列が SS の部分文字列であるような最大の kk の値を求めるプログラムを作成せよ.

制限

1leqqNleqq1000000,(=106)1 \\leqq N \\leqq 1000000 \\,(= 10^6)

SS の長さ


入力

標準入力から以下のデータを読み込め.

  • 11 行目には JOI33 種類の文字からなる文字列 SS が書かれている.

出力

標準出力に,レベル kk の JOI 列が SS の部分文字列であるような最大の kk の値を表す整数を 11 行で出力せよ.

採点基準

採点用データのうち,配点の 2020 %分については,Nleqq100N \\leqq 100 を満たす.


入力例 1

OJJOOIIOJOI

出力例 1

2

OJJOOIIOJOI はレベル 22 の JOI 列である JJOOII を部分文字列として含んでおり, レベル 33 以上の JOI 列は部分文字列として含まない.


入力例 2

IJJIIJJJ

出力例 2

0

レベル 00 の JOI 列は長さ 00 の文字列である.


入力例 3

JOIJOIJOIJOIJOI

出力例 3

1

入力例 4

OOJJJJJJJOOOOIIIII

出力例 4

4