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

-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 INF = 0x3f3f3f3f;
const long long LINF = 0x3f3f3f3f3f3f3f3f;
const int MOD = (int)1e9 + 7;
const int N = (int)1e5 + 7;
char read_char() {
  char c;
  for (;;) {
    c = getchar();
    if (c >= 'A' && c <= 'Z') return c;
  }
}
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= MOD;
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % MOD;
    a = a * a % MOD;
  }
  return res;
}
long long gcd(long long a, long long b) { return b ? gcd(b, a % b) : a; }
long long add(long long a, long long b) {
  a = ((a + b) % MOD + MOD) % MOD;
  return a;
}
long long mul(long long a, long long b) { return a * b % MOD; }
char s[N];
int a[N];
vector<int> sta;
vector<int> cnt;
void Init() {
  memset(a, -1, sizeof(a));
  cnt.clear();
  sta.clear();
}
int Solve() {
  int len = strlen(s);
  for (int i = (0); i < (len); ++i) {
    if (s[i] == '(') {
      sta.push_back(i);
    } else if (s[i] == ')') {
      if (sta.empty())
        return !puts("-1");
      else
        sta.pop_back();
    } else {
      cnt.push_back(i);
    }
  }
  if ((int)(sta).size() < (int)(cnt).size() || sta.back() > cnt.back())
    return !puts("-1");
  for (int i = (0); i < ((int)(sta).size()); ++i) a[sta[i]] = 0;
  for (int i = (0); i < ((int)(cnt).size()); ++i) a[cnt[i]] = 1;
  int t1 = 0, t2 = 0;
  for (int i = (0); i < (len); ++i) {
    if (a[i] == -1) continue;
    if (a[i] == 0)
      t1++;
    else
      t2++;
    if (t2 > t1) return !puts("-1");
  }
  for (int i = (0); i < ((int)(cnt).size()); ++i)
    printf("%d\n", i == (int)(cnt).size() - 1
                       ? (int)(sta).size() - (int)(cnt).size() + 1
                       : 1);
}
int main() {
  while (~scanf("%s", s)) {
    Init();
    Solve();
  }
  return 0;
}
