#include <bits/stdc++.h>
using namespace std;
using namespace std::chrono;
inline int getint() {
  char c = getchar();
  int x = 0, mi = 1;
  while (c != EOF && c != '-' && !isdigit(c)) c = getchar();
  if (c == '-') {
    mi = -1;
    c = getchar();
  }
  while (isdigit(c)) x = x * 10 + c - '0', c = getchar();
  return x * mi;
}
inline long long getll() {
  long long x;
  scanf("%lld", &x);
  return x;
}
inline double getdb() {
  static double x;
  scanf("%lf", &x);
  return x;
}
void prln() { printf("\n"); }
void pr(const char* s = " ") { printf("%s", s); }
void pr(char const& x) { putchar(x); }
void pr(bool const& x) { printf("%d", x); }
void pr(int const& x) { printf("%d", x); }
void pr(long long const& x) { printf("%lld", x); }
void pr(double const& x) { printf("%.2f", x); }
void pr(long double const& x) { printf("%.2f", (double)x); }
template <typename T>
void pr(pair<T, T> x) {
  pr("(");
  pr(x.first);
  pr(",");
  pr(x.second);
  pr(")");
}
template <typename T>
void pr(T const t[], int len, const char* h = "", const char* c = "\n") {
  printf("%s", h);
  for (decltype(len - 1) i = 0, lim__lim = (len - 1); i <= lim__lim; i++)
    pr(t[i]), pr();
  printf("%s", c);
}
template <typename T>
void updmax(T& a, T const& b) {
  a = max(a, b);
}
template <typename T>
void updmin(T& a, T const& b) {
  a = min(a, b);
}
template <typename T>
int Descr(T* from, T* to) {
  sort(from, to);
  return (int)(unique(from, to) - from);
}
template <typename T>
int LBound(T* from, T* to, T const& val) {
  return (int)(lower_bound(from, to, val) - from);
}
template <typename T>
int UBound(T* from, T* to, T const& val) {
  return (int)(upper_bound(from, to, val) - from);
}
time_point<system_clock> timing;
void TBegin() { timing = system_clock::now(); }
double TEnd(const char* c = "time: ") {
  auto end = system_clock::now();
  auto d = duration_cast<microseconds>(end - timing);
  auto dt =
      double(d.count()) * microseconds::period::num / microseconds::period::den;
  printf("%s%.10f", c, dt);
  return dt;
}
void TTick(const char* c = "time:") {
  TEnd(c);
  TBegin();
}
const int mxn = 1e5 + 50;
char s[mxn];
int ans[mxn];
int main() {
  scanf("%s", s + 1);
  int n = strlen(s + 1);
  for (decltype(n) i = 1, lim__lim = (n); i <= lim__lim; i++)
    if (s[i] != s[i - 1]) {
      ans[i - 1] = 1;
      reverse(s + 1, s + i);
    }
  if (s[n] == 'a') ans[n] ^= 1;
  for (decltype(n) i = 1, lim__lim = (n); i <= lim__lim; i++) pr(ans[i]), pr();
  return 0;
}
