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

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 setParent(parent: Int, child: Int): Unit = {
        parents(child) = parent
      }

      def getRoot(person: Int): Int = {
        if (parents(person) == person) {
          person
        } else {
          val parent = getRoot(parents(person))
          setParent(parent, person)
          parent
        }
      }
    }

    val unionFind = new UnionFind

    for (i <- s.indices) {
      if (s(i) == 'R') {
        if (s(i + 1) == 'R') {
          unionFind.setParent(i + 1, i)
        } else {
          // do nothing. It's me!
        }
      } else {
        unionFind.setParent(i - 1, i)
      }
    }

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

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