Malek has recently found a treasure map. While he was looking for a treasure he found a locked door. There was a string *s* written on the door consisting of characters '(', ')' and '#'. Below there was a manual on how to open the door. After spending a long time Malek managed to decode the manual and found out that the goal is to replace each '#' with one or more ')' characters so that the final string becomes beautiful. 

Below there was also written that a string is called beautiful if for each *i* (1 ≤ *i* ≤ |*s*|) there are no more ')' characters than '(' characters among the first *i* characters of *s* and also the total number of '(' characters is equal to the total number of ')' characters. 

Help Malek open the door by telling him for each '#' character how many ')' characters he must replace it with.
The first line of the input contains a string *s* (1 ≤ |*s*| ≤ 10<sup class="upper-index">5</sup>). Each character of this string is one of the characters '(', ')' or '#'. It is guaranteed that *s* contains at least one '#' character.
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <random>
#include <chrono>

using namespace std;
using namespace __gnu_pbds;

#define endl '\n'

typedef long long ll;
typedef pair<int, int> pii;
//typedef tree<int,null_type,less<int>,rb_tree_tag, tree_order_statistics_node_update> indexed_set;

//mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int main(){
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	//freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	
	string s;
	cin >> s;
	int n = (int)s.size();
	
	vector<int> v(n);
	for(int i = 0; i < n; i++){
		if(s[i] == '#'){
			int j = i + 1;
			int cnt = 0;
			while(j < n && s[j] == ')')
				cnt++, j++;
			v[i] = cnt;
			i = j - 1;
		}
	}
	
	
	vector<int> ans;
	
	int bal = 0;
	for(int i = 0; i < n; i++){
		if(s[i] == '(')
			bal++;
		if(s[i] == ')')
			bal--;
		
		if(bal < 0){
			cout << -1 << endl;
			return 0;
		}
		
		if(s[i] == '#'){
			
			if(v[i] >= bal){
				cout << -1 << endl;
				return 0;
			}
			ans.push_back(bal - v[i]);
			bal -= ans.back();
		}
		
	}
	
	
	for(int i = 0; i < (int)ans.size(); i++)
		cout << ans[i] << endl;

	return 0;
}
