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

-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<iostream>
#include<cstdlib>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<math.h>
#include<queue>
#include<stack>
using namespace std;
//*****************************************
__int64 Scan()   
{
    int res=0,ch,flag=0;
    if((ch=getchar())=='-')
        flag=1;
    else if(ch>='0'&&ch<='9')
        res=ch-'0';
    while((ch=getchar())>='0'&&ch<='9')
        res=res*10+ch-'0';
    return flag?-res:res;
}
void Out(int a) 
{
    if(a>9)
        Out(a/10);
    putchar(a%10+'0');
}
//****************************************
stack<char>s;
int main()
{
	char a[100100];
	int flag,jing,wei,index,b[100100];
	while(scanf("%s",a)!=EOF)
	{
		index=0;
		flag=0;
		wei=0;
		for(int i=0;i<strlen(a);i++)
		{
			if(a[i]=='(')
				wei++;
			else if(a[i]==')')
				wei--;
			else
			{
				wei--;
				b[flag]=1;
				flag++;
				jing=i;
			}
		}
		if(wei<0)
		{
			printf("-1\n");
			continue;
		}
		else
		{
			for(int i=strlen(a);i>jing;i--)
			{
				if(a[i]=='(')
					index--;
				else
					index++;
				if(index<0)
				{
					printf("-1\n");
					break;
				}
			}
			if(index<0)
				continue;
			b[flag-1]+=wei;
			for(int i=0;i<flag;i++)
			{
				printf("%d\n",b[i]);
			}
		}
	}
	return 0;
}