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

-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.Scanner;

public class Treasure {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char[] l = sc.nextLine().toCharArray();
		int c = 0;
		int h, b;
		StringBuffer sb = new StringBuffer();
		for (int i = 0; i < l.length; i++) {
			if (l[i] == '(') {
				c++;
			} else {
				b = 0;
				h = 0;
				while (i < l.length && l[i] != '(') {
					if (l[i] == ')')
						b++;
					else {
						h++;
					}
					i++;
				}
				if (i < l.length)
					i--;
				if (b + h > c || c - b < h) {
					System.out.println(-1);
					return;
				}
				if (h == 0) {
					c = 0;
					continue;
				}
				c = c - b;
				int f = c / h;
				sb.append((f + c % h) + "\n");
				h--;
				while (h-- > 0) {
					sb.append(f + "\n");
				}
				c = 0;
			}
		}
		if (c > 0) {
			System.out.println(-1);
			return;
		}
		System.out.print(sb);
	}
}
