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

-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>
int main(void) {
  char s[100000];
  int flag = 0, frag = 0, flagg = 0, i, j, k, count = 0, h;
  scanf("%s", &s);
  for (i = 0; s[i] != '\0'; i++) {
    if (s[i] == '(') {
      flag = flag + 1;
    } else if (s[i] == ')') {
      frag = frag + 1;
    } else {
      flagg = flagg + 1;
    }
  }
  if ((flag == 0) && (frag == 0)) {
    printf("-1");
    return 0;
  }
  if (flag > frag) {
    h = flag - frag;
    if (h >= flagg) {
      for (j = 1; j < flagg; j++) {
        printf("1\n");
        count = count + 1;
      }
      printf("%d\n", h - count);
    } else {
      for (j = 0; j < h; j++) {
        printf("1\n");
      }
      for (k = h; k < flagg; k++) {
        printf("0\n");
      }
    }
  } else {
    printf("-1");
  }
  return 0;
}
