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

-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.io.*;
import java.util.*;

public class P3 {
	public static void main (String[] args) {
		Scanner sc = new Scanner (System.in);
		PrintStream op = System.out;
		StringBuilder s = new StringBuilder(sc.nextLine());
		int n = s.length();
		Vector<Integer> v = new Vector <Integer> ();
		Vector<Integer> ind = new Vector <Integer> ();
		int c = 0;
		boolean isP = true;
		for (int i = 0; i < n; i++) {
			if (s.charAt(i) == '(')
				c++;
			else if (s.charAt(i) == ')')
				c--;
			else {
				c--;
				s.setCharAt(i, ')');
				ind.add(i);
			}
			if (c < 0) {
				isP = false;
				break;
			}
			v.add(c);
		}
		int x = 0, iter = ind.get(ind.size() - 1);
		while (iter < n && s.charAt(iter) == ')') iter++;
		for (; iter < n; iter++) {
			if (s.charAt(iter) == '(')
				x++;
			else
				x--;
			if (x < 0)
				isP = false;
		}
		if(x != 0)
			isP = false;
		if (!isP) {
			op.println(-1);
			sc.close();
			return;
		}
		for(int i : ind) {
			int min = Math.min(c, v.get(i));
			c -= min;
			v.set(i, min + 1);
		}
		if (c > 0) {
			op.println(-1);
			sc.close();
			return;
		}
		for(int i = ind.size() - 1; i >= 0; i--)
			op.println(v.get(ind.get(i)));
		sc.close();
	}
}
