import java.io.{BufferedOutputStream, BufferedReader, InputStreamReader, PrintWriter}

import scala.annotation.tailrec

object Main {
  def main(args: Array[String]): Unit = {
    val in = new BufferedReader(new InputStreamReader(System.in))
    val out = new PrintWriter(new BufferedOutputStream(System.out))
    val s = in.readLine().toCharArray

    class UnionFind {
      val parents: Array[Int] = Array.ofDim[Int](s.length)

      for (i <- parents.indices) {
        parents(i) = i
      }

      def unite(parent: Int, child: Int): Unit = {
        val rootOfParent = getRoot(parent)
        val rootOfChild = getRoot(child)
        if (rootOfParent != rootOfChild) {
          parents(rootOfChild) = rootOfParent
        }
      }

      def getRoot(person: Int): Int = {
        @tailrec
        def getAncestors(as: List[Int], me: Int): List[Int] = {
          val parent = parents(me)
          if (parent == me) {
            me :: as
          } else {
            getAncestors(me :: as, parent)
          }
        }

        val ancestors = getAncestors(Nil, person)
        val root = ancestors.head
        ancestors.tail.foreach { ancestor =>
          parents(ancestor) = root
        }

        root
      }
    }

    val unionFind = new UnionFind

    for (i <- s.indices) {
      if (s(i) == 'R') {
        if (s(i + 1) == 'R') {
          unionFind.unite(i + 1, i)
        } else {
          // do nothing. I'm root!
        }
      } else {
        unionFind.unite(i - 1, i)
      }
    }

    val lastPosition = Array.ofDim[Int](s.length)
    for (i <- s.indices) {
      val root = unionFind.getRoot(i)
      val diff = Math.abs(root - i)
      lastPosition(root + diff % 2) += 1
    }

    out.println(lastPosition.mkString(" "))
    out.flush()
  }
}
