#(#(#((##((()))(((#)(#()#(((()()(()#(##(((()(((()))#(((((()(((((((()#((#((()(#(((()(()##(()(((()((#(
 (#((((()
 (#((
 ((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((#)((##
 (())((((#)
 (#(
 (#))(#(#)((((#(##((#(#((((#(##((((((#((()(()(())((()#((((#((()((((#(((((#(##)(##()((((()())(((((#(((
 ##((((((()
 #((#
 #))))
 (((((#(#(#(#()
 ((#(()#(##
 (((((((((((((((((((###################
 )((##((###
 (((()#(#)(
 ((#)(
 )(((())#
 ()((#((#(#()
 ((#(
 ()#(#())()()#)(#)()##)#((()#)((#)()#())((#((((((((#)()()(()()(((((#)#(#((((#((##()(##(((#(()(#((#))#

-1
 -1
 -1
 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 3
 -1
 -1
 -1
 -1
 -1
 1
1
1
5
 1
1
1
1
 1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
 -1
 -1
 -1
 -1
 1
1
3
 -1
 -1

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(')')

if need < x.count('#'):
    print(-1)
else:
    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
            
