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

-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;
#pragma comment(linker, "/STACK:102400000,102400000")
char str[100005];
int ans[100005];
int main(void) {
  int i, c1, c2, srp;
  while (scanf("%s", str) != EOF) {
    int len = strlen(str);
    memset(ans, 0, sizeof(ans));
    int flag = 1;
    c1 = 0;
    c2 = 0;
    srp = 0;
    for (i = 0; i < len; i++) {
      if (str[i] == '(')
        c1++;
      else if (str[i] == ')')
        c2++;
      else if (str[i] == '#')
        srp++;
      if (c1 < c2 + srp) {
        flag = 0;
        break;
      }
    }
    if (!flag) {
      printf("-1\n");
      continue;
    } else {
      int res = c1 - c2, bal = 0, j = 1;
      for (i = 0; i < len; i++) {
        if (str[i] == '(')
          bal++;
        else if (str[i] == ')')
          bal--;
        else if (str[i] == '#') {
          if (j != srp)
            ans[j] = 1;
          else
            ans[j] = res - srp + 1;
          bal -= ans[j];
          j++;
        }
        if (bal < 0) {
          flag = 0;
          break;
        }
      }
      if (!flag || bal > 0)
        printf("-1\n");
      else {
        for (i = 1; i <= srp; i++) printf("%d\n", ans[i]);
      }
    }
  }
  return 0;
}
