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

-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

import java.util.*;

public class Treasure {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		
		String S = scan.next();
		scan.close();
		
		ArrayList<Integer> cnt = new ArrayList<Integer>();
		
		boolean canBeDone = true;
		int net = 0;
		
		for (int i = 0; i < S.length(); i++) {
			if (S.charAt(i) == '(') {
				net++;
			}
			else if (S.charAt(i) == ')') {
				net--;
			}
			else if (S.charAt(i) == '#') {
				cnt.add(1);
				net--;
			}
			
			if (net < 0) {
				canBeDone = false;
				break;
			}
		}
		
		if (!canBeDone) {
			System.out.println(-1);
		}
		else {
			Integer derp = cnt.get(cnt.size()-1);
			cnt.set(cnt.size()-1, derp+net);
			
			for (Integer i : cnt) {
				System.out.println(i);
			}
		}
		
	}

}
