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

-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;
int main() {
  string s;
  while (cin >> s) {
    int l = s.length(), op = 0, cl = 0, mx = 0, pos = 0;
    multiset<int> v;
    multiset<int>::iterator i;
    bool flag = true;
    for (int a = 0; a < l; a++) {
      if (s[a] == '(')
        op++;
      else if (s[a] == ')') {
        cl++;
        if (cl > op) {
          if (v.size() < 1) {
            flag = false;
            break;
          } else {
            i = v.begin();
            int z = -*i;
            if (z == 1) {
              flag = false;
              break;
            } else {
              v.erase(i);
              v.insert(1 - z);
              cl = op;
            }
          }
        }
      } else {
        if (cl >= op) {
          if (v.size() < 1) {
            flag = false;
            break;
          }
          i = v.begin();
          int z = -*i;
          if (z == 1) {
            flag = false;
            break;
          } else {
            z--;
            v.erase(i);
            v.insert(-z);
            v.insert(-1);
            cl = op;
          }
        } else {
          v.insert(cl - op);
          cl = op;
        }
      }
    }
    if (op != cl) flag = false;
    if (!flag)
      cout << -1 << endl;
    else {
      int l = v.size();
      for (i = v.begin(); i != v.end(); i++) cout << -*i << endl;
    }
  }
  return 0;
}
