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

-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 N = 5000 + 20;
const int maxn = 1e5 + 20;
const int mod = 998244353;
int cnt, head[maxn], pos[maxn];
double Max(double a, double b) { return a > b ? a : b; }
int min(int a, int b) { return a < b ? a : b; }
int gcd(int a, int b) { return b ? gcd(b, a % b) : a; }
int lcm(int a, int b) { return a * b / gcd(a, b); }
void swap(int &x, int &y) { x ^= y, y ^= x, x ^= y; }
int lowbit(int x) { return (x) & (-x); }
long long ksm(long long a, long long b) {
  long long res = 1;
  while (b) {
    if (b & 1) res = (res * a) % mod;
    b >>= 1, a = a * a % mod;
  }
  return res % mod;
}
int read(int &v) {
  int k = 1;
  v = 0;
  int c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') k = 0;
    c = getchar();
  }
  while (c >= '0' && c <= '9')
    v = (v << 3) + (v << 1) + (c - 48), c = getchar();
  if (k == 0) v = -v;
  return c;
}
char s[maxn];
int sta[maxn], ans[maxn];
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  int top = 0;
  for (int i = 1; i <= n; i++) {
    if (s[sta[top]] == '(' && s[i] == ')')
      top--;
    else if (s[i] != '#')
      sta[++top] = i;
  }
  for (int i = 1; i <= n; i++) {
    if (s[i] == '#') sta[++top] = i;
  }
  sort(sta + 1, sta + 1 + top);
  int k = 0;
  int sum = 0;
  bool fla = false;
  for (int i = top; i >= 1; i--) {
    if (s[sta[i]] == '#') {
      ans[k++] = sum;
      sum = 0;
    } else if (s[sta[i]] == '(') {
      sum++;
      fla = true;
    }
  }
  if (!fla) {
    puts("-1");
    return 0;
  }
  if (sum) ans[k++] = sum;
  for (int i = k - 1; i > 0; i--) {
    printf("%d\n", ans[i]);
  }
  return 0;
}
