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:
__author__ = 'Darren'


def solve():
    sequence = input().strip()

    n = len(sequence)
    longest, count, start = 0, 1, 0
    stack = []
    for i in range(n):
        if sequence[i] == '(':
            stack.append(i)
        else:
            if len(stack) == 0:
                start = i + 1
                continue
            stack.pop()
            if len(stack) == 0:
                current_length = i - start + 1
                if current_length > longest:
                    longest = current_length
                    count = 1
                elif current_length == longest:
                    count += 1
                else:
                    pass
            else:
                current_length = i - stack[-1]
                if current_length > longest:
                    longest = current_length
                    count = 1
                elif current_length == longest:
                    count += 1
                else:
                    pass

    print('%d %d' % (longest, count))



if __name__ == '__main__':
    solve()