#agc045b. [agc045_b]01 Unbalanced

[agc045_b]01 Unbalanced

問題文

文字列 SS が与えられます. SS の各文字は,0,1,? のいずれかです.

SS に含まれる全ての ?01 に変えて(? ごとに変換後の文字を選択できます),文字列 SS' を作ることを考えます. ここで,SS' のアンバランス度を,次のように定義します.

  • SS' のアンバランス度 \= \\max \\{ S'll 文字目から rr 文字目までに含まれる 0 の個数と 1 の個数の差の絶対値 :\\ 1 \\leq l \\leq r \\leq |S|\\}

SS' のアンバランス度としてありうる最小の値を求めてください.

制約

  • 1leqSleq1061 \\leq |S| \\leq 10^6
  • SS の各文字は 0,1,? のいずれかである.

入力

入力は以下の形式で標準入力から与えられる.

SS

出力

SS' のアンバランス度としてありうる最小の値を出力せよ.


入力例 1

0??

出力例 1

1

S=S'=010 とすれば,アンバランス度は 11 になり,これが最小です.


入力例 2

0??0

出力例 2

2

入力例 3

??00????0??0????0?0??00??1???11?1?1???1?11?111???1

出力例 3

4