import java.io._
import java.util.StringTokenizer
import scala.util.control.Breaks.{breakable,break}
import scala.collection.mutable.{Map, Queue, PriorityQueue}

object Main extends App {
  val in = new InputReader(System.in)
  val pw = new PrintWriter(System.out)

  // val a = new Array[Int](N)

  val S = "0" + in.next()
  val N = S.length - 1

  //
  val R = 'R'; val L = 'L'

  var cnt = 0
  val dp = new Array[Int](N+1)
  for (i <- 1 to N) {
    if (S(i) == R) {
      cnt += 1
    }
    else if (S(i) == L) {
      dp(i-1) += (cnt + 1) / 2
      dp(i) += cnt / 2
      cnt = 0
    }
  }

  for (i <- (1 to N).reverse) {
    if (S(i) == L) {
      cnt += 1
    }
    else if (S(i) == R) {
      dp(i+1) += (cnt + 1) / 2
      dp(i) += cnt / 2
      cnt = 0
    }
  }

  pw.print(dp(1))
  for (i <- 2 to N) {
    pw.print(s" ${dp(i)}")
  }
  pw.println()
  pw.flush()
}


class InputReader(stream: InputStream) {
  private val reader = new BufferedReader(new InputStreamReader(stream))
  private var tokenizer: StringTokenizer = new StringTokenizer(reader.readLine())
  def next(): String = {
    while (!tokenizer.hasMoreTokens()) {
      tokenizer = new StringTokenizer(reader.readLine())
    }
    tokenizer.nextToken()
  }
}
