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

-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() {
  char s[100001];
  while (scanf("%s", s) != EOF) {
    int tot = 1, z[100001] = {0};
    for (int i = 0; s[i] != '\0'; i++) {
      if (s[i] == '(') {
        z[tot]++;
      }
      if (s[i] == ')') {
        z[tot]--;
      }
      if (s[i] == '#') {
        for (i++; s[i] == ')'; i++) z[tot]--;
        i--;
        tot++;
      }
    }
    for (int i = tot; i >= 1; i--) {
      if (z[i] <= 0)
        for (int j = 1; j < i; j++) {
          while (z[j] > 1) {
            if (z[i] == 0 && i == tot)
              break;
            else if (z[i] == 1)
              break;
            z[j]--;
            z[i]++;
          }
          if (z[i] == 1)
            break;
          else if (z[i] == 0 && i == tot)
            break;
        }
    }
    bool flag = 0;
    for (int i = 1; i < tot; i++)
      if (z[i] <= 0) flag = 1;
    if (!flag)
      for (int i = 1; i < tot; i++) printf("%d\n", z[i]);
    else
      printf("-1\n");
  }
  return 0;
}
