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 PYTHON):

Solution:
__author__ = 'jay'


def main():
    line = raw_input()
    val_stack = []
    pos_stack = []
    pos = 0
    farthest = 0
    length = 1
    for x in line:
        if x == '(':
            if len(val_stack) == 0 or val_stack[-1] != '^':
                val_stack.append('^')
                pos_stack.append(pos)
            val_stack.append(x)
            pos_stack.append(pos)
        elif len(val_stack) > 0:
            while len(val_stack) > 0 and val_stack[-1] == '^':
                val_stack.pop()
                pos_stack.pop()
            if len(val_stack) > 0:
                val_stack.pop()
                if val_stack[-1] == '^':
                    pos_stack.pop()
                    dest = pos - pos_stack[-1] + 1
                else:
                    dest = pos - pos_stack.pop() + 1
                if farthest < dest:
                    farthest = dest
                    length = 1
                elif farthest == dest:
                    length += 1
        pos += 1
    print farthest, length

if __name__ == "__main__":
    main()