[新版judge已支持special judge;增加了提交后的状态页面;增加对提交代码的语言检查] [新版judge系统近日试运行,希望可以解决内存越界导致Waiting的问题] [more]
 

2262: Brackets


Status In/Out TIME Limit MEMORY Limit Submit Times Solved Users JUDGE TYPE
stdin/stdout 3s 8192K 190 66 Standard
We give the following inductive definition of a " regular brackets " sequence:
  • the empty sequence is a regular brackets sequence,
  • if s is a regular brackets sequence, then (s) and [s] are regular brackets sequences, and
  • if a and b are regular brackets sequences, then ab is a regular brackets sequence.
  • no other sequence is a regular brackets sequence
For instance, all of the following character sequences are regular brackets sequences:
    (), [], (()), ()[], ()[()]
while the following character sequences are not:
    (, ], )(, ([)], ([(]
Given a brackets sequence of characters a1a2 . . . an, your goal is to find the length of the longest regular brackets sequence that is a subsequence of s. That is, you wish to find the largest m such that for indices i1, i2, . . . , im where 1 ≤ i1 < i2 < . . . < im ≤ n, ai1 ai2 . . . aim is a regular brackets sequence. For example, given the initial sequence ([([]])], the longest regular brackets subsequence is [([])].

Input

The input test file will contain multiple test cases. Each input test case consists of a single line containing only the characters (, ), [, and ]; each input test will have length between 1 and 100, inclusive. The end-of-file is marked by a line containing the word " end " and should not be processed.

Output

For each input case, the program should print the length of the longest possible regular brackets subsequence on a single line.

Sample Input

((()))
()()()
([]])
)[)(
([][][)
end

Sample Output

6
6
4
0
6


This problem is used for contest: 41 


Submit / Problem List / Status / Discuss