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

-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>
const int maxn = 100007;
char s[maxn];
int ans[maxn];
int main(int argc, char const *argv[]) {
  std::ios::sync_with_stdio(false);
  std::cin >> s;
  int len = strlen(s), cc = 0;
  int cur = 0;
  bool mark = false;
  bool flg = false;
  for (int i = 0; i < len; i++) {
    if (s[i] == '(') {
      if (mark) {
        flg = 0;
        mark = 0;
        cur = 1;
      } else {
        cur++;
      }
    } else if (s[i] == ')') {
      if (flg) {
        ans[cc]--;
        if (ans[cc] == 0) ans[cc] = -1;
      } else {
        cur--;
      }
    } else {
      if (!mark) {
        ans[++cc] = cur != 0 ? cur : -1;
        flg = 1;
        mark = 1;
        cur = 0;
      } else {
        if (ans[cc] > 1) {
          ans[cc + 1] = ans[cc] - 1;
          ans[cc] = 1;
        } else {
          ans[cc + 1] = -1;
        }
        cc++;
      }
    }
  }
  if (ans[cc] == 0) ans[cc] = -1;
  for (int i = 1; i <= cc; i++) {
    printf("%d\n", ans[i]);
  }
  return 0;
}
