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.
def minPow(stra):
    minx = 0
    curr = 0
    for i in stra:
        if i == ')':
            curr -= 1
        else:
            curr += 1
        minx = min(curr, minx)
    return minx

x = input()

div = x.split('#')
i = [[t.count('('), t.count(')')] for t in div]
defic = [minPow(string) for string in div]
need = x.count('(') - x.count(')')

pts = 0
group = 0
add = []
for k in range(len(x)):
    if x[k] == '(':
        pts += 1
    if x[k] == ')':
        pts -= 1
    if x[k] == '#':
        group += 1
        req = (pts - abs(defic[group]))
        if req <= 0:
            print(-1)
            quit()
        if req == need:
            print(req)
            quit()
        elif req >= need:
            print(req - need)
            quit()
        else:
            print(req)
            need -= req
            pts -= req
        
