2500 - 括号画家
Description

Candela 是一名漫画家,她有一个奇特的爱好,就是在纸上画括号。这一天,刚刚起床的 Candela 画了一排括号序列,其中包含小括号 `()`、中括号 `[]` 和大括号 `{}`,总长度为 N。这排随意绘制的括号序列显得杂乱无章,于是 Candela 定义了什么样的括号序列是美观的:

1. 空的括号序列是美观的;

2. 若括号序列 A 是美观的,则括号序列 `(A)`、`[A]`、`{A}` 也是美观的;

3. 若括号序列 A、B 都是美观的,则括号序列 `AB` 也是美观的;

例如 `[(){}]()` 是美观的括号序列,而 `)({)[}](` 则不是。

现在 Candela 想在她绘制的括号序列中,找出其中连续的一段,满足这段子序列是美观的,并且长度尽量大。你能帮帮她吗?


Input

第一行一个长度为 N 的括号序列。


Output

一个整数,表示最长的美观的连续子序列的长度。

Examples

Input

({({(({()}})}{())})})[){{{([)()((()]]}])[{)]}{[}{)

Output

4
Hint

对于 40\% 数据,表达式长度不超过 100

对于 100\% 的数据,表达式长度不超过 10^4



题目参数
Time Limit 1 second
Memory Limit 128 MB
提交次数 95
通过次数 24