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

public class Hello
{
    private const int MOD_N = 1000000000 + 7;

    public static void Main()
    {
        var s = Console.ReadLine();

        var ts = new List<int[]>();

        int a = 0, b = 0;
        int[] t = null;

        for (int i = 0; i < s.Length; ++i)
        {
            switch (s[i])
            {
                case 'L':
                    switch (a)
                    {
                        case 0:
                            switch (b)
                            {
                                case 0:
                                    ++t[2];
                                    b = 1;
                                    break;
                                case 1:
                                    ++t[1];
                                    b = 0;
                                    break;
                            }
                            break;
                        case 1:
                            a = 0;
                            switch (b)
                            {
                                case 0:
                                    ++t[2];
                                    b = 1;
                                    break;
                                case 1:
                                    ++t[1];
                                    Swap(ref t[1], ref t[2]);
                                    break;
                            }
                            break;
                    }
                    break;
                case 'R':
                    switch (a)
                    {
                        case 0:
                            t = new int[] { i, 1, 0 };
                            ts.Add(t);
                            a = 1;
                            b = 0;
                            break;
                        case 1:
                            t[0] = i;
                            switch (b)
                            {
                                case 0:
                                    ++t[2];
                                    b = 1;
                                    break;
                                case 1:
                                    ++t[1];
                                    b = 0;
                                    break;
                            }
                            break;
                    }
                    break;
            }
        }

        var answer = new int[s.Length];
        ts.Add(new int[] { int.MaxValue });
        int ti = 0;
        t = ts[0];
        for (int i = 0; i < s.Length; ++i)
        {
            if (t == null || i < t[0])
            {
                answer[i] = 0;
                continue;
            }
            answer[i] = t[i == t[0] ? 1 : 2];
            if (i != t[0])
                t = ts[++ti];
        }

        Console.WriteLine(string.Join(" ", answer));
    }

    private static int GCD(int a, int b) => a > b ? GCD_impl(a, b) : GCD_impl(b, a);
    private static int GCD_impl(int a, int b) => b == 0 ? a : GCD_impl(b, a % b);
    private static long LCM(int a, int b) => (long)a * b / GCD(a, b);

    private static int Comb(int m, int n)
    {
        var t = m - n;
        if (n > t)
            n = t;

        long numerator = 1;
        for (int i = 0; i < n; ++i)
        {
            numerator *= m - i;
            numerator %= MOD_N;
        }
        long denominator = 1;
        for (; n != 0; --n)
        {
            denominator *= n;
            denominator %= MOD_N;
        }

        var inv_denominator = ModInv((int)denominator, MOD_N);
        var ret = (int)(numerator * inv_denominator % MOD_N);

        return ret >= 0 ? ret : ret + MOD_N;
    }

    private static int ModInv(int a, int m)
    {
        int b = m, x = 1, y = 0;
        while (b != 0)
        {
            var t = a / b;
            a -= t * b;
            Swap(ref a, ref b);
            x -= t * y;
            Swap(ref x, ref y);
        }
        x %= m;
        return x >= 0 ? x : x + m;
    }

    private static void Swap<T>(ref T a, ref T b)
    {
        var t = a;
        a = b;
        b = t;
    }
}


Measured memory_bytes: 20700