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

-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 N = 2e6 + 10;
const int md = 1e9 + 7;
int a[N], b[N], c[N], dp[111][2];
int i, j, n, m, ans, x, y, t, z, k;
vector<int> v;
int d;
int main() {
  string st;
  cin >> st;
  t = 0;
  n = st.size() - 1;
  while (n > 0 && st[n] != '#') n--;
  for (i = 0; i < n; i++)
    if (st[i] == '(')
      t++;
    else {
      t--;
      if (t < 0) {
        cout << -1;
        return 0;
      }
      if (st[i] == '#') v.push_back(1);
    }
  int tt = t;
  z = tt;
  for (i = n; i < st.size(); i++)
    if (st[i] == '(')
      tt++;
    else {
      tt--;
      z = min(z, tt);
    }
  if (z != tt || z < 0) {
    cout << -1;
    return 0;
  }
  v.push_back(z + 1);
  for (i = 0; i < v.size(); i++) cout << v[i] << endl;
}
