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

-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>
long long gcd(long long a, long long b) {
  while (a && b) {
    if (a > b)
      a %= b;
    else
      b %= a;
  }
  return a + b;
}
long long lcm(long long a, long long b) { return (((a) / gcd(a, b))) * b; }
int phi(int n) {
  int result = n;
  for (int i = 2; i * i <= n; i++) {
    if (n % i == 0) {
      while (n % i == 0) n /= i;
      result -= result / i;
    }
  }
  if (n > 1) result -= result / n;
  return result;
}
long long power(long long a, long long b, long long c) {
  long long r = 1;
  while (b) {
    if (b & 1) r *= a;
    a *= a;
    a %= c;
    r %= c;
    b /= 2;
  }
  return r;
}
void nxi(int& n) {
  bool min = 0;
  char c;
  n = 0;
  while ((c = getc(stdin)) && c <= 32)
    ;
  if (c == '-')
    min = 1;
  else
    n = c - 48;
  while ((c = getc(stdin)) && c > 32) n = (n << 3) + (n << 1) + c - 48;
  if (min) n = -n;
}
void prl(int n) {
  if (n == 0) {
    puts("0");
    return;
  }
  static int s[10];
  int top = 0;
  while (n > 0) s[top++] = n % 10, n /= 10;
  while (top--) putchar(s[top] + 48);
  puts("");
}
using namespace std;
string s;
int a[5000100];
int main() {
  cin >> s;
  if (s == "#") {
    puts("-1");
    return 0;
  }
  int last = 0;
  int cnt = 0;
  for (int i = 0; i < s.length(); i++)
    if (s[i] == '#') {
      cnt++;
      last = i;
    };
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '#') s[i] = ')';
    a[i] = (i > 0 ? a[i - 1] : 0) + (s[i] == '(' ? 1 : -1);
    if (a[i] < 0) {
      puts("-1");
      exit(0);
    }
  }
  int put = a[s.length() - 1];
  int sv = put + 1;
  if (put < 0) {
    puts("-1");
    return 0;
  }
  if (put == 0) {
    for (int i = 0; i < cnt; i++) puts("1");
    exit(0);
  }
  while (put--) s.insert(s.begin() + last, ')');
  for (int i = 0; i < s.length(); i++) {
    if (s[i] == '#') s[i] = ')';
    a[i] = (i > 0 ? a[i - 1] : 0) + (s[i] == '(' ? 1 : -1);
  }
  if (a[s.length() - 1] == 0) {
    for (int i = 0; i < cnt - 1; i++) puts("1");
    cout << sv << endl;
  } else
    puts("-1");
  return 0;
}
