import java.util.Scanner

object Main {
  def main(args: Array[String]): Unit = {
    val sc = new Scanner(System.in)
    val s = sc.nextLine()
    val arr = new Array[Int](s.length)
    val ss = s.toCharArray

    for (i <- arr.indices) {
      arr(i) = 0
    }

    for (i <- arr.indices) {
      arr(f(ss, i, even = true)) += 1
    }

    println(arr.mkString(" "))
  }

  @scala.annotation.tailrec
  def f(s: Array[Char], i: Int, even: Boolean): Int = {
    val m = s(i)
    if (m == 'R' && s(i + 1) == 'L') {
      if (even) i else i + 1
    } else if (m == 'L' && s(i - 1) == 'R') {
      if (even) i else i - 1
    } else if (s(i) == 'R') {
      f(s, i + 1, !even)
    } else {
      f(s, i - 1, !even)
    }
  }

  def isParent(par: Array[Int], x: Int): Boolean = {
    par(x) == x
  }

  def init(par: Array[Int]): Unit = {
    for (i <- par.indices) {
      par(i) = i
    }
  }


  def root(par: Array[Int], x: Int): Int = {
    if (par(x) == x) {
      x
    } else {
      par(x) = root(par, par(x))
      par(x)
    }
  }

  def same(par: Array[Int], x: Int, y: Int): Boolean = {
    root(par, x) == root(par, y)
  }

  def unite(par: Array[Int], x: Int, y: Int): Unit = {
    var (xx, yy) = (root(par, x), root(par, y))
    if (!(xx == yy))
      par(xx) = yy
  }
}
