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

-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/pb_ds/assoc_container.hpp> 
#include <ext/pb_ds/tree_policy.hpp> 
using namespace std;
using namespace __gnu_pbds; 
  
#define ordered_set tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update> 
  
#define ll long long
#define sg string
int mod(1000000007);
#define emb emplace_back
#define my_love ios_base::sync_with_stdio(0),cin.tie(0),cout.tie(0);
#define bug(x) cout<<#x<<" "<<x<<"\n"
#define f(i,k,n) for(ll i=k;i<=n;i++)

ll min(ll a,ll b)
{
    return (a<=b?a:b);
}
ll max(ll a,ll b)
{
    return (a>=b?a:b);
}
ll gd(ll a,ll b)
{
    if(b==0)
    return a;
    return gd(b,a%b);
}
ll pwr(ll a,ll b)
{
    ll res=0;
    while(b)
    {
        if(b%2==1)
        {
            res*=a;
        }
        a=a*a;
        b>>=1;
    }
    return res;
}

int main() 
{
    my_love
     //freopen("input.txt", "r", stdin);
//	freopen("output.txt", "w", stdout);
    sg s;
    cin>>s;
    stack<int>st;
    int count=0;
    for(int i=0;i<s.size();i++)
    {
        if(s[i]=='(')
        st.push(s[i]);
        else if(s[i]==')')
        {
            if(st.empty())
            {
                cout<<-1<<"\n";
                return 0;
            }
            st.pop();
        }
        else
        count++;
        if(count>st.size())
        {
            cout<<-1<<"\n";
            return 0;
        }
    }
    if(count>st.size() || (count==0 && st.size()>=1))
    {
        cout<<-1<<"\n";
        return 0;
    }
    int k=st.size();
    for(int i=1;i<count;i++)
    cout<<1<<"\n",k--;
    cout<<k<<"\n";
	return 0;
}