def longest_valid_parentheses(s):
n = len(s)
if n == 0:
return 0
dp = [0] * n
max_len = 0
for i in range(1, n):
if s[i] == ')':
if s[i-1] == '(':
dp[i] = (dp[i-2] if i >= 2 else 0) + 2
else:
if i - dp[i-1] > 0 and s[i - dp[i-1] - 1] == '(':
dp[i] = dp[i-1] + 2 + (dp[i - dp[i-1] - 2] if (i - dp[i-1]) >= 2 else 0)
max_len = max(max_len, dp[i])
elif s[i] == ']':
if s[i-1] == '[':
dp[i] = (dp[i-2] if i >= 2 else 0) + 2
else:
if i - dp[i-1] > 0 and s[i - dp[i-1] - 1] == '[':
dp[i] = dp[i-1] + 2 + (dp[i - dp[i-1] - 2] if (i - dp[i-1]) >= 2 else 0)
max_len = max(max_len, dp[i])
elif s[i] == '}':
if s[i-1] == '{':
dp[i] = (dp[i-2] if i >= 2 else 0) + 2
else:
if i - dp[i-1] > 0 and s[i - dp[i-1] - 1] == '{':
dp[i] = dp[i-1] + 2 + (dp[i - dp[i-1] - 2] if (i - dp[i-1]) >= 2 else 0)
max_len = max(max_len, dp[i])
return max_len
s = input().strip()
print(longest_valid_parentheses(s))