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

-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;
struct Point {
  double X, Y;
  void Input() { scanf("%lf %lf", &X, &Y); }
  void Print() { printf("x=%10.3lf y=%10.3lf\n", X, Y); }
  double Dist(Point p) {
    return sqrt(((X - p.X) * (X - p.X)) + ((Y - p.Y) * (Y - p.Y)));
  }
};
struct Line {
  double A, B, C;
  void Create(Point a, Point b) {
    A = b.Y - a.Y, B = a.X - b.X, C = -A * a.X - B * a.Y;
  }
  double Dist(Point p) {
    return fabs((A * p.X + B * p.Y + C) / sqrt(A * A + B * B));
  }
  void Print() { printf("A=%10.3lf B=%10.3lf C=%10.3lf\n", A, B, C); }
};
const int N = 100104;
const int K = 21;
const int M = 100000;
const int INF = 2000000000;
const double eps = 1e-7;
int n, m, k, l, r, p;
int h;
bool ok;
char s[N];
int pos, balance;
void PrintData(int par = 0);
void Input();
void Output();
void Main();
void Init();
int main() {
  Init();
  Input();
  Main();
  Output();
  return 0;
}
void Init() { n = 0, m = 0, k = 0; }
void Main() {
  ok = true;
  balance = 0;
  for (int i = 0; i < n; i++)
    if (s[i] == '#')
      k++, pos = i, balance--;
    else if (s[i] == '(')
      balance++;
    else if (s[i] == ')')
      balance--;
  if (balance < 0) {
    printf("-1");
    return;
  }
  for (int i = 0, j = 0; i < n; i++) {
    if (s[i] == '#' && i < pos) j--;
    if (s[i] == '#' && i == pos)
      j -= k - balance;
    else if (s[i] == '(')
      j++;
    else if (s[i] == ')')
      j--;
    if (j < 0) {
      ok = false;
      break;
    }
  }
  if (!ok) {
    printf("-1");
    return;
  }
  for (int i = 1; i < k; i++) printf("1\n");
  printf("%d\n", balance + 1);
}
void Input() {
  scanf("%s", s);
  n = strlen(s);
}
void Output() {}
void PrintData(int par) {
  if (par == 0) {
    printf("n=%d <%s>\n", n, s);
  } else {
    printf("k=%d balance=%d\n", k, balance);
  }
}
