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

-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 RCC {
	
	java.util.Scanner in;
	static PrintWriter out;
	
	static class Scanner  {
		
		StreamTokenizer in;
		
		Scanner (InputStream is) {
			in = new StreamTokenizer(new BufferedReader(new InputStreamReader(is)));
		}
		
		int nextInt() {
			try {
				in.nextToken();
				return (int)in.nval;
			} catch (IOException e) {
				throw new Error();
			}
		}
		
		
	}
		
	
	void solve() {
		char []s = in.nextLine().toCharArray();
		List<Integer> counts = new ArrayList<Integer>();
		int d = 0;
		int lastIdx = -1;
		for (int i = s.length - 1; i >= 0; i--) {
			if (s[i] == '#') {
				lastIdx = i;
				break;
			}
		}
		for (int i = 0; i < s.length; i++) {
			char c = s[i];
			if (c == '(') {
				d++;
			} else if (c == ')') {
				d--;
			} else {
				if (i == lastIdx) {
					int ans = 0;
					for (int j = i + 1; j < s.length; j++) {
						if (s[j] == '(') {
							ans++;
						} else {
							ans--;
						}
					}
					if (ans + d > 0) {
						counts.add(ans + d);
						d -= ans + d;
					} else {
						out.println(-1);
						return;
					}
					
				} else {
					counts.add(1);
					d--;
				}
			}
			if (d < 0) {
				out.println(-1);
				return;
			}
		}
		
		if (d != 0) {
			out.println(-1);
			return;
		}
		
		for (Integer i : counts) {
			out.println(i);
		}
	}
	
	static void asserT(boolean e) {
		if (!e) {
			throw new Error();
		}
	}
	
	public void run() {
		in = new java.util.Scanner(System.in);
		out = new PrintWriter(System.out);
		try {
			solve();
		} finally {
			out.close();
		}
	}
	
	public static void main(String[] args) {
		new RCC().run();
	}
}