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>.
expression = list(input())
stack = []
maximum_length = 0
no_of_substrings = 0
count=0
for i in expression:
    if len(stack)==0 and i==')':
        pass
    elif i=='(':
        stack.insert(0,i)
    elif i==')':
        stack.pop(0)
        count+=1
        if len(stack)==0:
            no_of_substrings+=1
            if count>maximum_length:
                maximum_length=count
                count=0

if maximum_length==0 and no_of_substrings==0:
    print(0,end=' ')
    print(1)
else:
    print(maximum_length*2,end=' ')
    print(no_of_substrings)
