{-# LANGUAGE BangPatterns #-}
import Control.Arrow
import Control.Monad.Fix
import Data.Char
import Data.Int
import Data.Foldable
import Data.List
import qualified Data.Vector as V
import qualified Data.Vector.Unboxed as VU
import qualified Data.ByteString.Char8 as B
import Debug.Trace

solve :: B.ByteString -> VU.Vector Int
solve !bs = VU.accum (+) (VU.replicate (B.length bs) 0) $ zip coords [1, 1 ..]
 where
  coords = reverse $ (\(ans, _, _, _) -> ans) $ B.foldl'
    ( \(!ans, !ps, !prev, !i) (!cur) ->
      let ps' = if prev == 'L' && cur == 'R' then tail ps else ps
          p   = head ps'
      in  ((if even (p - i) then p else p - 1) : ans, ps', cur, i + 1)
    )
    ([], points, B.head bs, 0)
    bs

  points = reverse $ (\(_, !acc, _) -> acc) $ B.foldl'
    ( \(!prev, !acc, !i) (!cur) ->
      (cur, if prev == 'R' && cur == 'L' then i : acc else acc, i + 1)
    )
    (B.head bs, [], 0 :: Int)
    bs

main = do
  let readInt :: Integral a => B.ByteString -> Maybe (a, B.ByteString)
      readInt = fmap (first fromIntegral . second B.tail) . B.readInt

  bs <- B.getLine
  putStrLn $ intercalate " " $ map show $ VU.toList $ solve bs
