#include <bits/stdc++.h>
using namespace std;
int64_t mod = 1000000007, inf = 4e18;
int64_t sum = 0;
int64_t tmp3 = 0, tmp = 0, tmp2 = 0, comb = 1;
vector<int64_t> check, st, st2;
int64_t maxi = 0, mini = inf;
vector<vector<int64_t> > g;
bool high = 0;
int64_t n;
int64_t logn = 1;
int32_t main() {
  ios::sync_with_stdio(false), cin.tie(nullptr);
  cout << fixed << setprecision(0);
  string s;
  cin >> s;
  n = s.size();
  vector<string> big(s.size()), small(s.size());
  vector<vector<int64_t> > b(n), sm(n);
  big[0] = s[0];
  b[0] = sm[0] = vector<int64_t>(1, 0);
  small[0] = s[0];
  for (int64_t i = 1; i < n; i++) {
    string rev = small[i - 1] + s[i];
    reverse((rev).begin(), (rev).end());
    if (big[i - 1] + s[i] > rev) {
      b[i] = b[i - 1];
      b[i].push_back(0);
    } else {
      b[i] = sm[i - 1];
      b[i].push_back(1);
    }
    big[i] = max(big[i - 1] + s[i], rev);
    rev = big[i] + s[i];
    reverse((rev).begin(), (rev).end());
    if (small[i - 1] + s[i] < rev) {
      sm[i] = sm[i - 1];
      sm[i].push_back(0);
    } else {
      sm[i] = b[i - 1];
      sm[i].push_back(1);
    }
    small[i] = min(small[i - 1] + s[i], rev);
  }
  for (auto i : sm[n - 1]) cout << i << ' ';
  return 0;
}
