using System;
using System.Linq;
using System.Collections.Generic;

namespace program
{
    class Program
    {
        static void Main()
        {
          var s = Input.ScanStr() + "R";
          
          int Lcount=0, Rcount=0, start=0, point=0;
          for(int i=0;i<s.Length-1;i++){
            if(s[i] == 'L') 
              Lcount++; 
            else 
              Rcount++;
            
            if(s[i] == 'R' && s[i+1] == 'L')
              point = i - start;
            
            if(s[i] == 'L' && s[i+1] == 'R'){
              Display(Lcount, Rcount, point);
              Lcount = Rcount = 0;
              start = i+1;
            }
          }
          Console.WriteLine();
        }
      
        static public void Out(object s) { Console.Write($"{s} "); }
      
      static public void Display(int L, int R, int point){
        int Left, Right;
        Left = Right = (L+R)/2;
        if((L+R)%2==1){
          if((Math.Max(L,R)-1)%2==1)
          {if(L>R) Left++; else Right++;}
          else
          {if(L<R) Left++; else Right++;}
        }
        
        for(int i=0;i<Left+Right;i++)
          if(i==point)
            Out(Left);
          else if(i==point+1)
            Out(Right);
          else
            Out(0);
      }
    }
    
    static class Input {
        static public int ScanInt() { return int.Parse(Console.ReadLine()); }
        static public uint ScanUint() { return uint.Parse(Console.ReadLine()); }
        static public double ScanDouble() { return double.Parse(Console.ReadLine()); }
        static public long ScanLong() { return long.Parse(Console.ReadLine()); }
        static public ulong ScanUlong() { return ulong.Parse(Console.ReadLine()); }
        static public int[] ScanIntArray() { return Console.ReadLine().Split().Select(x => int.Parse(x)).ToArray(); }
        static public uint[] ScanUintArray() { return Console.ReadLine().Split().Select(x => uint.Parse(x)).ToArray(); }
        static public double[] ScanDoubleArray() { return Console.ReadLine().Split().Select(x => double.Parse(x)).ToArray(); }
        static public long[] ScanLongArray() { return Console.ReadLine().Split().Select(x => long.Parse(x)).ToArray(); }
        static public ulong[] ScanUlongArray() { return Console.ReadLine().Split().Select(x => ulong.Parse(x)).ToArray(); }

        static public string ScanStr() { return Console.ReadLine(); }
        static public string[] ScanStrArray() { return ScanStr().Split(); }
    }

    static class MyMath {
        public static int GCD(int a, int b)
        {
            Func<int, int, int> gcd = null;
            gcd = (x, y) => y == 0 ? x : gcd(y, x % y);
            return a > b ? gcd(a, b) : gcd(b, a);
        }
        public static ulong GCD(ulong a, ulong b)
        {
            Func<ulong, ulong, ulong> gcd = null;
            gcd = (x, y) => y == 0 ? x : gcd(y, x % y);
            return a > b ? gcd(a, b) : gcd(b, a);
        }
        public static int LCM(int a, int b)
        {
            return a * b / GCD(a, b);
        }
        public static ulong LCM(ulong a, ulong b)
        {
            return a * b / GCD(a, b);
        }
    }
}


Measured memory_bytes: 17884