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>.
s=input()

def func(s,a,b):
    lst=[]
    mx=0
    arrmax=[]
    checker=0
    for i in range(len(s)):
        # print(lst,mx,s[i])
        if(s[i]==b and len(lst)==0):
            arrmax.append(mx)
            mx = 0
            continue
        else:
            if(s[i]==a):
                lst.append(a)
            elif(s[i]==b):
                mx+=2
                del lst[-1]
            if (i == len(s) - 1):
                arrmax.append(mx)


    if(len(arrmax)!=0 and max(arrmax)!=0):
        m=max(arrmax)
        cont=0
        for i in arrmax:
            if(i==m):
                cont+=1
        return (m,cont)
    else:
        return (0,1)

x=func(s,"(",")")
res=s[::-1]
y=func(res,")","(")
if(x[0]<y[0]):
    print(x[0],x[1])
else:
    print(y[0],y[1])



