// inputに入力データ全体が入る
function Main(input) {
    // 1行目がinput[0], 2行目がinput[1], …に入る
    input = input.split("\n");
    tmp0 = input[0].split(" ");
    // tmp1 = input[1].split(" ");

    S = input[0]

    //分割位置導出
    splitIndex = []
    beforeRL = S[0]
    for(var i=1; i < S.length; i++)
    {
      if(beforeRL === 'L' && S[i] === 'R')
      {
        splitIndex.push(i)
      }
      beforeRL = S[i]
    }
    splitIndex.push(S.length)
    // console.log(splitIndex)

    start = 0
    tmpStr = []
    for(var i=0; i < splitIndex.length; i++)
    {
      tmpStr.push(S.substr(start, splitIndex[i] - start)) // start, length
      start = splitIndex[i]
    }
    // console.log(tmpStr)

    var finalR = []
    var finalL = []
    for(var i=0; i < tmpStr.length; i++)
    {
      var Rcnt = tmpStr[i].split('R').length - 1
      var Lcnt = tmpStr[i].split('L').length - 1
      // console.log(`R: ${Rcnt}, L: ${Lcnt}`)
      finalR.push(Math.ceil(Rcnt/2) + Math.floor(Lcnt/2))
      finalL.push(Math.ceil(Lcnt/2) + Math.floor(Rcnt/2))
    }
    // console.log(finalR)
    // console.log(finalL)

    var finalCnt = 0
    for(var i=0; i < S.length-1; i++)
    {
      afterRL = S[i+1]
      // console.log(`S[i] : ${S[i]}, afterRL: ${afterRL}`)
      if(S[i] === 'R' && afterRL === 'L')
      {
        process.stdout.write(finalR[finalCnt] + ' ' + finalL[finalCnt] + ' ');
        i++
        finalCnt++
        if(i === S.length-2)
        {
          process.stdout.write('0');
        }
        continue
      }
      process.stdout.write('0 ');
      if(i === S.length-2)
      {
        process.stdout.write('0');
      }
    }
}
  //*この行以降は編集しないでください（標準入出力から一度に読み込み、Mainを呼び出します）
Main(require("fs").readFileSync("/dev/stdin", "utf8"));
// Main("RRRLLRLLRRRLLLLL\n");