Malek has recently found a treasure map. While he was looking for a treasure he found a locked door. There was a string *s* written on the door consisting of characters '(', ')' and '#'. Below there was a manual on how to open the door. After spending a long time Malek managed to decode the manual and found out that the goal is to replace each '#' with one or more ')' characters so that the final string becomes beautiful. 

Below there was also written that a string is called beautiful if for each *i* (1 ≤ *i* ≤ |*s*|) there are no more ')' characters than '(' characters among the first *i* characters of *s* and also the total number of '(' characters is equal to the total number of ')' characters. 

Help Malek open the door by telling him for each '#' character how many ')' characters he must replace it with.
The first line of the input contains a string *s* (1 ≤ |*s*| ≤ 10<sup class="upper-index">5</sup>). Each character of this string is one of the characters '(', ')' or '#'. It is guaranteed that *s* contains at least one '#' character.
s=input()
a=s.count('(')
b=s.count(')')
c=s.count('#')
need=a-b
can=[]
i=0
siz=0
while i<len(s):
    if(s[i]=='('):
        siz+=1
    elif(s[i]==')'):
        siz-=1
    else:
        i+=1
        while i<len(s) and s[i]!='(':
            siz-=1
            i+=1
        i-=1
        if(siz<=0):
            break
        can.append(siz)
        siz=0;
    i+=1
if(i!=len(s)):
    print(-1)
else:
    can=list(map(lambda x: x-1, can))
    need-=c
    i=0
    rez=[1]*c
    while need!=0:
        if(can[i]<=need):
            need-=can[i]
            rez[i]+=can[i]
        else:
            rez[i]+=need
            need=0
        i+=1
    for i in rez:
        print(i)