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

-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() {
  string str;
  cin >> str;
  int dlin;
  int posl = 1, prav = 0, resh = 0, balance = 0, k = 0;
  dlin = str.length();
  int* mas = new int[dlin];
  for (int i = 0; i < dlin; i++) {
    if (str[i] == '(') balance++;
    if (str[i] == ')') balance--;
    if (str[i] == '#') {
      balance--;
      resh = i;
      k++;
    }
  }
  if (balance < 0) {
    cout << -1;
    return 0;
  }
  for (int j = resh + 1; j < dlin; j++) {
    if (str[j] == '(') prav++;
    if (str[j] == ')') prav--;
  }
  if ((prav > 0) || (str[dlin - 1] == '(')) {
    cout << -1;
    return 0;
  }
  if (balance > 0) {
    while (balance > 0) {
      posl++;
      balance--;
    }
  }
  if (balance = 0) posl = 1;
  for (int i = 1; i < k; i++) cout << 1 << endl;
  cout << posl;
  return 0;
}
