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.
import sys
input = sys.stdin.readline

def inp():
    return(int(input()))
def inlt():
    return(list(map(int,input().split())))
def insr():
    s = input()
    return(list(s[:len(s) - 1]))
def invr():
    return(map(int,input().split()))

s = insr()

queue = []
stack = []
left = 0
for i in range(len(s)):
    stack.append(s[i])
    
    cur = 0
    replacer = 0
    remain = 0
    stop = False
    while len(stack) > 0:
        if stack[-1] == ')':
            cur += 1
        if stack[-1] == "#":
            replacer += 1
        if stack[-1] == "(":
            if cur > 0:
                cur -= 1
            elif replacer > 0:
                if len(stack) >= replacer:
                    queue.append(len(stack) - (replacer-1))
                    for i in range(replacer-1):
                        queue.append(1)
                    stack = []
                    replacer = 0
                else:
                    stop = True
                break
            else:
                break
        
        stack.pop()
    
    if cur > 0:
        while left < len(queue):
            x = min(queue[left]-1,cur)
            queue[left] -= x
            cur -= x

            if queue[left] == 1:left += 1
            if cur == 0:break
    
    if cur > 0 or replacer > 0:stop = True
    if stop:
        queue = [-1]
        break

for x in queue:print(x)