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

-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;
vector<int> v, state;
string s;
int c, a, temp;
int main() {
  cin >> s;
  c = 0;
  for (int i = int(0); i <= int(s.length() - 1); i++) {
    if (s[i] == '(') {
      c++;
    } else if (s[i] == ')') {
      c--;
    } else if (s[i] == '#') {
      v.push_back(1);
      c--;
      temp = c;
    }
    if (c < 0) {
      printf("-1\n");
      return 0;
    }
  }
  a = v.size();
  if (c > temp) {
    printf("-1\n");
  } else {
    v[a - 1] += c;
    for (int i = int(0); i <= int(a - 2); i++) {
      printf("%d\n", v[i]);
    }
    cout << c + 1 << endl;
  }
  return 0;
}
