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>.
#for i in range(t):
String=input()
#check(String)

stack=[]
i=0
count=0
Max=0;num=0
n=len(String)
while i< n-1:
    flag=0
    if String[i]=='(' and String[i+1]==')':
        count+=2
        i+=1
    elif String[i]=='(' and String[i+1]=='(':
        stack.append('(')
    else:
        while i<n and String[i]==')':
            if len(stack)>0:
                stack.pop()
                count+=2
                
            else:
                flag=1
            i+=1

        i-=1
    if flag ==1 and len(stack)==0:
        Max=max(count,Max);count=0
        num+=1        
        #
        #count=0

    #print(stack,count)        
    i+=1            
if not stack and flag==0:
    #print(count)
    Max=max(count,Max)
    num+=1
print(Max,num)