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

-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 maxn = 1000 * 100 + 321;
int a[maxn], b[maxn], cnt[maxn], n;
string s;
int main() {
  cin >> s;
  n = s.size();
  for (int i = 0; i < n; i++) {
    if (s[i] == ')')
      a[i + 1] = a[i] + 1;
    else
      a[i + 1] = a[i];
    if (s[i] == '(')
      b[i + 1] = b[i] + 1;
    else
      b[i + 1] = b[i];
    if (s[i] == '#')
      cnt[i + 1] = cnt[i] + 1;
    else
      cnt[i + 1] = cnt[i];
  }
  int ind = lower_bound(cnt, cnt + n, cnt[n]) - cnt;
  for (int i = 0; i <= n; i++)
    if (b[i] < a[i] + cnt[i]) {
      cout << -1;
      return 0;
    }
  if (b[ind] < b[n] - (a[n] - a[ind])) {
    cout << -1;
    return 0;
  }
  for (int i = 0; i < cnt[n] - 1; i++) cout << "1\n";
  cout << (b[n] - a[n] - cnt[ind] + 1);
}
