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

-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 sz = 2e5 + 100;
int main() {
  int x, i, j, k, l, m, p, q;
  string str;
  cin >> str;
  bool bl = true;
  int len = str.length();
  stack<char> st;
  int last = -1, ct = 0;
  int ans[len];
  for (i = len - 1; i >= 0; i--) {
    if (str[i] == ')')
      st.push(')');
    else if (str[i] == '#')
      st.push(')'), last = 0, ans[ct++] = 1;
    else {
      if (st.size() == 0 && last == -1)
        bl = false;
      else {
        if (st.size() > 0)
          st.pop();
        else
          ++ans[last];
      }
    }
  }
  if (st.size() > 0) bl = false;
  if (!bl)
    cout << "-1\n";
  else {
    for (i = ct - 1; i >= 0; i--) cout << ans[i] << '\n';
  }
}
