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

-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

#include <bits/stdc++.h>
#include <ext/numeric>
#if !ONLINE_JUDGE
#include "inc.h"
#endif
using namespace __gnu_cxx;
using namespace std;
typedef long long ll;

const int N = 1e5 + 10;
char s[N];
int open, hash;

int main() {
#ifndef ONLINE_JUDGE
	freopen("aa.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);
	decTime;
#endif

	scanf("%s", s);
	int len = strlen(s);
	int flag = 0, f2 = 0;
	for (int i = 0; i < len; ++i) {
		open += s[i] == '(';
		open -= s[i] == ')';
		hash += s[i] == '#';
		if(s[i] == '(')
			f2 = 1, flag = 1;
		else
			flag = 0;
		if(s[i] == ')' && f2 == 0) {
			puts("-1");
			return 0;
		}
	}
	if (hash > open || flag)
		puts("-1");
	else {
		int tmp = 0;
		while(hash--) {
			if(!hash)
				printf("%d", open - tmp);
			else
				puts("1"), ++tmp;
		}
	}

#if !ONLINE_JUDGE
	printTime;
#endif
	return 0;
}
