問題にチャレンジして、ユーザー同士で解答を教え合ったり、コードを公開してみよう!
レベル 1 ~ レベル 3 の塔をそれぞれ文字 1, 2, 3 と定義します。
また、レベル k の塔は、レベル k - 1, レベル k - 2, レベル k - 3 の塔を任意の順番で重ねたものと定義します。(k ≧ 4)
ただし、このままでは文字が縦に並んでしまい扱いにくいため、代わりに以下のように定義します。
レベル k - 1 の塔、レベル k - 2 の塔、レベル k - 3 の塔を表す文字列を任意の順番で並べたものをレベル k の塔とします。(k ≧ 4)
例えば、123, 132 などがレベル 4 の塔に該当します。
文字列 s が与えられたとき、この文字列に含まれる塔の最大のレベルを求めてください。
なお、与えられる文字列全体が 1 つの塔を表しているとは限りません。
例えば、文字列 232 にはレベル 2 の塔が 2 つ、レベル 3 の塔が 1 つ含まれている一方で、レベル 4 の塔は含まれていませんが、そのような文字列が入力されることもあります。
s
1 行で、答えを整数で出力してください。
また、末尾に改行を入れ、余計な文字を含んではいけません。
すべてのテストケースにおいて、以下の条件をみたします。
・ s は 1, 2, 3 のみからなる文字列
・ 1 ≦ |s| ≦ 100000 = 10^5
132
4
123321
5