AT_abc027_d [ABC027D] ロボット

Description

[problemUrl]: https://atcoder.jp/contests/abc027/tasks/abc027_d 数直線の原点にロボットが置かれている。 はじめ、ロボットの幸福度は $ 0 $ である。 このロボットに命令列が与えられる。 命令列は次の $ 3 $ 文字のみからなり、先頭から末尾まで順に実行される。 - `M` : 正または負の好きな向きに、距離 $ 1 $ だけ移動する。 - `+` : 今の座標を $ x $ とすると、幸福度が $ +x $ だけ変化する。 - `-` : 今の座標を $ x $ とすると、幸福度が $ -x $ だけ変化する。 命令列を実行し終えた後、 **ロボットは原点に戻っていなければならない** 。 命令列を実行している間、ロボットの座標および幸福度は負になり得る。 最終的な幸福度を最大化するようにロボットが移動したとき、最終的な幸福度を求めよ。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ S $ - $ 1 $ 行目には、命令列 $ S $ ($ 1≦|S|≦10^5 $) が与えられる。$ S $ は `M`, `+`, `-` のみからなり、`M` が偶数個含まれる。

Output Format

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

Explanation/Hint

### 部分点 この問題には部分点が設定されている。 - $ 1≦|S|≦1,000 $ を満たすデータセットに正解した場合は $ 30 $ 点が得られる。 ### Sample Explanation 1 以下では、正の向きへの移動を `>`、負の向きへの移動を `<` と表す。 `>+<<->` のように移動すればよい。 ### Sample Explanation 2 例えば `>><+<` のように移動すればよい。 ### Sample Explanation 3 `<<<+-->>>` のように移動すればよい。