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

-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>
using namespace std;
int n;
vector<int> a, b;
char s[100100];
vector<int> f;
void solve() {
  cin >> s;
  n = strlen(s);
  int l = 0, r = 0, x = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '(') l++;
    if (s[i] == ')') r++;
    if (s[i] == '#') x++;
  }
  int sum = l - r;
  if (sum < x) {
    cout << -1;
    return;
  }
  int k = sum;
  int t = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] == '(') l++, f.push_back(1);
    if (s[i] == ')') r++, f.push_back(-1);
    if (s[i] == '#') {
      t++;
      if (t < x) {
        f.push_back(-1);
        k--;
      } else {
        for (int j = 1; j <= k; j++) f.push_back(-1);
      }
    }
  }
  int now = 0;
  for (int i = 0; i < f.size(); i++) {
    now += f[i];
    if (now < 0) {
      cout << -1;
      return;
    }
  }
  if (now != 0) {
    cout << -1;
    return;
  }
  for (int i = 1; i <= x; i++) {
    if (i < x) {
      cout << 1 << endl;
      sum--;
    } else
      cout << sum << endl;
  }
}
int main() {
  solve();
  return 0;
}
