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

-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;
char arr[100005];
vector<long long int> v;
vector<long long int> car;
int main() {
  long long int mp, nar, pos, posi, tcase, n, i, j, k, ans, pp, temp, c1, c2,
      dar;
  scanf("%s", arr);
  c1 = c2 = dar = 0;
  n = strlen(arr);
  for (i = 0; i < n; ++i) {
    if (arr[i] == '(') {
      ++c1;
    } else if (arr[i] == ')') {
      ++c2;
    } else {
      if (c1 - c2 < 1) {
        dar = 1;
        break;
      } else {
        v.push_back(c1 - c2);
        pos = c1 - c2;
        posi = i;
      }
    }
  }
  nar = c1 - c2;
  if (dar == 1) {
    printf("-1\n");
    return 0;
  }
  dar = 0;
  temp = 0;
  if (v.size() >= 2) {
    for (i = 0; i < (long long int)(v.size() - 1); ++i) {
      mp = v[i] - dar;
      if (mp < 1) {
        printf("-1\n");
        return 0;
      }
      dar = dar + 1;
      car.push_back(1);
    }
    pos = pos - dar;
    nar = nar - dar;
    pos = pos - nar;
    pp = 0;
    c1 = 0;
    c2 = 0;
    for (i = n - 1; i > posi; --i) {
      if (arr[i] == '(') {
        ++c1;
      } else if (arr[i] == ')') {
        ++c2;
      }
    }
    if (c1 - c2 > 0) {
      printf("-1\n");
      return 0;
    }
    if (nar < 1) {
      printf("-1\n");
      return 0;
    }
    car.push_back(nar);
    if (pos >= 0) {
      for (i = 0; i < car.size(); ++i) {
        printf("%lld\n", car[i]);
      }
    } else {
      printf("-1\n");
    }
  } else if (v.size() == 1) {
    if (nar < 1) {
      printf("-1\n");
      return 0;
    }
    pos = pos - nar;
    pp = 0;
    c1 = 0;
    c2 = 0;
    for (i = n - 1; i > posi; --i) {
      if (arr[i] == '(') {
        ++c1;
      } else if (arr[i] == ')') {
        ++c2;
      }
    }
    if (c1 - c2 > 0) {
      printf("-1\n");
    } else if (pos >= 0) {
      printf("%lld\n", nar);
    } else {
      printf("-1\n");
    }
  }
  return 0;
}
