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

-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;
long long int bigmod(long long int a, long long int b, long long int Mod) {
  if (b == 0) return 1ll;
  if (b % 2) return (a * bigmod(a, b - 1, Mod)) % Mod;
  long long int c = bigmod(a, b / 2, Mod);
  return (c * c) % Mod;
}
char str[100010];
int A[100010];
int main() {
  int n;
  scanf("%s", str);
  n = strlen(str);
  int a = -1;
  int ans = 0;
  int d = 0;
  for (int i = 0; i < n; i++) {
    A[i] = (str[i] == '(') ? 1 : -1;
    if (str[i] == '#') {
      a = i;
      d++;
    }
    if (i != 0) A[i] += A[i - 1];
    if (A[i] < 0) ans = -1;
  }
  if (ans == -1) {
    printf("-1\n");
    return 0;
  }
  if (a == -1 && (A[n - 1] != 0)) {
    printf("-1\n");
    return 0;
  }
  if (A[n - 1] == 0) {
    for (int i = 1; i <= d; i++) printf("1\n");
    return 0;
  }
  if (A[n - 1] > A[a]) {
    printf("-1\n");
    return 0;
  }
  for (int i = 1; i <= d - 1; i++) printf("1\n");
  printf("%d\n", A[n - 1] + 1);
  return 0;
}
