D - ロボット Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

数直線の原点にロボットが置かれている。 はじめ、ロボットの幸福度は 0 である。

このロボットに命令列が与えられる。 命令列は次の 3 文字のみからなり、先頭から末尾まで順に実行される。

  • M : 正または負の好きな向きに、距離 1 だけ移動する。
  • + : 今の座標を x とすると、幸福度が +x だけ変化する。
  • - : 今の座標を x とすると、幸福度が -x だけ変化する。

命令列を実行し終えた後、 ロボットは原点に戻っていなければならない 。 命令列を実行している間、ロボットの座標および幸福度は負になり得る。

最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を求めよ。


入力

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

S
  • 1 行目には、命令列 S (1≦|S|≦10^5) が与えられる。SM, +, - のみからなり、M が偶数個含まれる。

部分点

この問題には部分点が設定されている。

  • 1≦|S|≦1,000 を満たすデータセットに正解した場合は 30 点が得られる。

出力

最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を 1 行に出力せよ。 出力の末尾には改行を入れること。


入力例1

M+MM-M

出力例1

2

以下では、正の向きへの移動を >、負の向きへの移動を < と表す。

>+<<-> のように移動すればよい。


入力例2

MMM+M

出力例2

1

例えば >><+< のように移動すればよい。


入力例3

MMM+--MMM

出力例3

3

<<<+-->>> のように移動すればよい。


入力例4

+

出力例4

0