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

-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 main() {
  char str[100004];
  int n, flag = 0, x, y, flag2 = 0;
  cin >> str;
  x = 0, y = 0;
  int has = 0, hs = 0;
  vector<int> v;
  n = strlen(str);
  for (int i = 0; i < n; i++) {
    if (str[i] == '#') {
      has++;
      flag = 1;
    }
    if (str[i] == '(' && flag == 1 && x - y > 0) {
      hs++;
      v.push_back(x - y);
      flag2 = 1;
      x = 0;
      y = 0;
      flag = 0;
    }
    if (str[i] == '(') {
      x++;
    }
    if (str[i] == ')') {
      y++;
    }
  }
  if (x > y && flag == 1) {
    hs++;
    v.push_back(x - y);
    flag2 = 1;
  }
  if (v.size() == has) {
    for (typeof(v.begin()) it = v.begin(); it != v.end(); it++) {
      cout << *it << "\n";
    }
  } else {
    cout << -1 << endl;
  }
  return 0;
}
