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:
#!/usr/bin/env python


def main():
    longest = 0
    count = 1
    left = list()
    lead = 0
    push = left.append
    pop = left.pop
    for paren in input():
        if paren == "(":
            push(0)
        elif not left:
            lead = 0
        else:
            span = pop() + 2
            if left:
                span += pop()
                push(span)
            else:
                span += lead
                lead = span
            if span == longest:
                count += 1
            elif span > longest:
                longest = span
                count = 1
    print(longest, count)


if __name__ == '__main__':
    main()