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

-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.*;
import java.math.*;
public class idk {
	static Scanner scn = new Scanner(System.in);
	static int mod = 1000000007;

	public static void main(String[] args) {
		String str = scn.next();
		int n = str.length(), count = 0, open = 0, c = 0, a = 0;
		solve(str);
	}
	 public static void solve(String str)
     {
         char[] s = str.toCharArray();
         int open = 0,closed = 0,n = s.length, H = 0;
         for (int i = 0; i < n; i++)
         {
             if (s[i] == '(')
             {
                 open++;
             }
             if (s[i] == ')')
             {
                 closed++;
             }
             if (s[i] == '#')
             {
                 H++;
             }
         }

         int diff = open - closed;
         if (diff < 0)
         {
             System.out.println(-1);
             return;
         }

         int o = 0;
         int c = 0;
         int[] h = new int[H];
         int index = 0;
         for (int i = 0; i < n; i++)
         {
             if (s[i] == '(')
             {
                 o++;
             }
             if (s[i] == ')')
             {
                 c++;
             }
             if (s[i] == '#')
             {
                 if (c + 1 <= o && diff - 1 >= 0)
                 {
                     h[index++] = 1;
                     diff--;
                     c++;
                 } else
                 {
                     System.out.println(-1);
                     return;
                 }
             }
         }
         h[index - 1] += diff;
         o = 0;
         c = 0;
         index = 0;
         for (int i = 0; i < n; i++)
         {
             if (s[i] == '(')
             {
                 o++;
             }
             if (s[i] == ')')
             {
                 c++;
             }
             if (s[i] == '#')
             {
                 c += h[index];
                 index++;
             }
             if (c > o)
             {
                 System.out.println(-1);
                 return;
             }
         }
         for (int i = 0; i < H; i++)
         {
             System.out.println(h[i]);
         }

     }

	public static int decode(String str, int i, int[] memo) {
		if (i == 0) {
			return 1;
		}
		int ind = str.length() - i;
		if (str.charAt(ind) == '0')
			return 0;
		if (memo[i] != -1)
			return memo[i];
		int res = decode(str, i - 1, memo);
		if (i >= 2 && Integer.parseInt(str.substring(ind, ind + 2)) <= 26) {
			res += decode(str, i - 2, memo);
		}
		memo[i] = res;
		return res;
	}
}