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

-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;
const int MAXN = 100010;
char str[MAXN];
vector<int> ans;
int main() {
  int i, j;
  scanf("%s", str);
  int a = 0, b = 0, c = 0;
  ans.clear();
  int len = strlen(str);
  for (i = 0; i < len; i++) {
    if (str[i] == '(')
      a++;
    else if (str[i] == ')')
      b++;
    else if (str[i] == '#')
      c++;
  }
  int num = 0;
  int flag = 1;
  for (i = 0; i < len; i++) {
    if (str[i] == '#') {
      if (c == 1) {
        if (a - b <= 0) flag = 0;
        ans.push_back(a - b);
        num -= a - b;
        c--;
      } else {
        ans.push_back(1);
        num--;
        c--;
        b++;
      }
    } else if (str[i] == '(')
      num++;
    else
      num--;
    if (num < 0) {
      flag = 0;
      break;
    }
  }
  if (num < 0 || !flag)
    printf("-1\n");
  else {
    for (i = 0; i < ans.size(); i++) printf("%d\n", ans[i]);
  }
  return 0;
}
