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

-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;
mt19937 rnd(time(0));
const double eps = 1e-10;
const long long N = 3e4 + 7;
const long long MOD = 1e9 + 7;
long long pw(long long b, long long p) {
  b %= MOD;
  long long res = 1;
  while (p > 0) {
    if (p & 1) res = res * b % MOD;
    b = b * b % MOD;
    p >>= 1;
  }
  return res;
}
int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  string s;
  cin >> s;
  long long n = s.size();
  long long o = 0, c = 0, h = 0, cnt = 0;
  for (long long i = 0; i < n; i++) {
    if (s[i] == '#') h++;
  }
  vector<long long> ans;
  for (long long i = 0; i < n; i++) {
    if (s[i] == '(')
      o++;
    else if (s[i] == ')')
      c++;
    else {
      cnt++;
      if (cnt == h) {
        long long x = o - c;
        for (long long j = i + 1; j < n; j++) {
          if (s[j] == ')')
            x--;
          else if (s[j] == '(')
            x++;
        }
        if (x <= 0) {
          cout << -1;
          return 0;
        }
        ans.emplace_back(x);
        o -= x;
      } else {
        ans.emplace_back(1);
        o--;
      }
    }
    if (o < c) {
      cout << -1;
      return 0;
    }
  }
  if (ans.size() < h) {
    cout << -1;
  } else {
    for (auto i : ans) cout << i << '\n';
  }
  return 0;
}
