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 tc in range(1):
    s=input()

    c=0
    ans=0
    l=0
    an=[0]*(len(s)+1)
    for i in range(0,len(s)):
        if l==0:
            if s[i]=='(':
                c-=1
                l+=1

            else:
                c=0
                l=0
                continue
        elif l!=0:

            if s[i]=='(':
                c-=1
                l+=1
            else:
                c+=1
                l+=1
            if c==0:
                an[l]+=1
                ans=max(ans,l)
                l=0
#print("array",an[ans],an)



"""
ans1=0
l=0
c=0
for i in range(len(s)-1,-1,-1):
    #print(ans1)
    if l==0:
        if s[i]==')':
            c-=1
            l+=1

        else:
            c=0
            l=0
            continue
    elif l!=0:

        if s[i]==')':
            c-=1
            l+=1
        else:
            c+=1
            l+=1
        if c==0:
            #print('as;dlkfj',i)
            ans1=max(ans1,l)
            c=0
            l=0
"""
if ans==0:
    print("0 1")
else:
    print(ans,an[ans])