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

-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 s;
  cin >> s;
  vector<int> res;
  int num = 0;
  bool can = 1;
  int last = 0;
  for (int i = 0; i < s.size(); ++i) {
    const char& op = s[i];
    if (op == '(')
      num++;
    else if (op == ')')
      num--;
    else
      num--, res.push_back(1), last = i;
    if (num < 0) can = 0;
  }
  if (!can or s.back() == '(')
    printf("-1\n");
  else {
    res.back() += num;
    num = 0;
    while (last < s.length() && s[last] != '(') last++;
    for (int i = last; i < s.length(); ++i) num += s[i] == '(' ? 1 : -1;
    if (num > 0)
      printf("-1\n");
    else
      for (auto& op : res) printf("%d\n", op);
  }
  return 0;
}
