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

-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;
string second;
bool valid(string &t) {
  stack<char> st;
  for (char c : t) {
    if (st.empty())
      st.push(c);
    else if (st.top() == '(' && c == ')')
      st.pop();
    else
      st.push(c);
  }
  return st.empty();
}
int main() {
  cin >> second;
  int b = count(second.begin(), second.end(), '(');
  int p = count(second.begin(), second.end(), ')');
  int h = count(second.begin(), second.end(), '#');
  int dnel = b - p;
  if (dnel < h) {
    puts("-1");
    return 0;
  }
  int l = second.length();
  for (; l >= 0; l--) {
    if (second[l] == '#') {
      second[l] = '$';
      break;
    }
  }
  ostringstream ss;
  string res = "";
  for (char c : second) {
    if (c == '(' || c == ')')
      res += c;
    else if (c == '#') {
      res += ')';
      dnel--;
      ss << 1 << endl;
    } else if (c == '$') {
      for (int i = 0; i < dnel; i++) res += ')';
      ss << dnel << endl;
    }
  }
  if (valid(res)) {
    cout << ss.str() << endl;
  } else {
    puts("-1");
  }
  return 0;
}
