Problem: This is yet another problem dealing with regular bracket sequences.

We should remind you that a bracket sequence is called regular, if by inserting «+» and «1» into it we can get a correct mathematical expression. For example, sequences «(())()», «()» and «(()(()))» are regular, while «)(», «(()» and «(()))(» are not. 

You are given a string of «(» and «)» characters. You are to find its longest substring that is a regular bracket sequence. You are to find the number of such substrings as well.

Input

The first line of the input file contains a non-empty string, consisting of «(» and «)» characters. Its length does not exceed 106.

Output

Print the length of the longest substring that is a regular bracket sequence, and the number of such substrings. If there are no such substrings, write the only line containing "0 1".

Examples

Input

)((())))(()())


Output

6 2


Input

))(


Output

0 1

Solution (in PYTHON3):

Solution:
#5C - longest brackets sequence
"""
The number of opening brackets '(' in our sequence that will later have to be
equivalised by closing brackets we start counting after we encounter the first '('
a - the length of the longest substring that maintains the rule
b - the number of such substrings
s - stack of brackets that maintain the rule of a regular sequence

Initially, a = 0 and we consider this to be a regular sequence already
"""
#We take input and immediately process each character introduced by the user
# for i, c in enumerate(input()):
m, b, s = 0, 1, [-1]
for i, c in enumerate(input()):
	if c == '(': s.append(i)
	elif len(s) > 1:
		s.pop()
		n = i - s[-1]
		if m < n: m, b = n, 1
		elif m == n: b += 1
	else: s[0] = i
print (' '.join([str(m), str(b)]))