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.
The first line of the input file contains a non-empty string, consisting of «(» and «)» characters. Its length does not exceed 10<sup class="upper-index">6</sup>.
sequence, seq_len, seq_count, top, poped = input().strip(), 0, 0, 0, 0

for b in sequence:
    if b == '(':
        top += 1
    else:
        top -= 1
        poped += 1

        if top == 0:
            if poped > seq_len:
                seq_len, seq_count = poped, 1
                poped = 0
            elif poped == seq_len:
                seq_count += 1
                poped = 0

        elif top < 0:
            top, poped = 0, 0

if poped == 0:
    print('0 1')
elif seq_count == 0:
    print('1 {}'.format(poped * 2))
else:
    print('{} {}'.format(seq_len * 2, seq_count))