import sys

from bisect import bisect_left, bisect



def solve():

    S = eval(input())

    N = len(S)

    RL = []

    B = [0] * N

    for i in range(N):

        if S[i] == "R":

            if i < N - 1 and S[i + 1] == "L": RL.append(i)

    for i in range(N):

        j = bisect_left(RL, i)

        if S[i] == "R":

            if (RL[j] - i) % 2 == 0: B[RL[j]] += 1

            else: B[RL[j] + 1] += 1

        else:

            if (i - RL[j - 1]) % 2 == 0: B[RL[j - 1]] += 1

            else: B[RL[j - 1] + 1] += 1

    print((" ".join(map(str, B))))



    return 0

if __name__ == "__main__":

    solve()
import sys



def solve():

    input = sys.stdin.readline

    S = input().strip("\n")

    N = len(S)

    nL, nR = [N-1] * N, [0] * N

    cl, cr = N-1, 0

    for i in range(1, N):

        if S[i] == "R": cr = i

        nR[i] = cr

        if S[N-i-1] == "L": cl = N-i-1

        nL[N-i-1] = cl



    sumC = [0] * N

    for i in range(N):

        if S[i] == "R":

            move = nL[i] - i

            if move % 2 == 0: sumC[nL[i]] += 1

            else: sumC[nL[i] - 1] += 1

        else:

            move = i - nR[i]

            if move % 2 == 0: sumC[nR[i]] += 1

            else: sumC[nR[i] + 1] += 1

    print((" ".join(map(str, sumC))))







    return 0



if __name__ == "__main__":

    solve()
import sys
from bisect import bisect_left, bisect


def solve():
    S = eval(input())
    N = len(S)
    RL = []
    B = [0] * N
    for i in range(N):
        if S[i] == "R":
            if i < N - 1 and S[i + 1] == "L":
                RL.append(i)
    for i in range(N):
        j = bisect_left(RL, i)
        if S[i] == "R":
            if (RL[j] - i) % 2 == 0:
                B[RL[j]] += 1
            else:
                B[RL[j] + 1] += 1
        else:
            if (i - RL[j - 1]) % 2 == 0:
                B[RL[j - 1]] += 1
            else:
                B[RL[j - 1] + 1] += 1
    print((" ".join(map(str, B))))
    return 0


if __name__ == "__main__":
    solve()

import sys


def solve():
    input = sys.stdin.readline
    S = input().strip("\n")
    N = len(S)
    nL, nR = [N - 1] * N, [0] * N
    cl, cr = N - 1, 0
    for i in range(1, N):
        if S[i] == "R":
            cr = i
        nR[i] = cr
        if S[N - i - 1] == "L":
            cl = N - i - 1
        nL[N - i - 1] = cl
    sumC = [0] * N
    for i in range(N):
        if S[i] == "R":
            move = nL[i] - i
            if move % 2 == 0:
                sumC[nL[i]] += 1
            else:
                sumC[nL[i] - 1] += 1
        else:
            move = i - nR[i]
            if move % 2 == 0:
                sumC[nR[i]] += 1
            else:
                sumC[nR[i] + 1] += 1
    print((" ".join(map(str, sumC))))
    return 0


if __name__ == "__main__":
    solve()

-from bisect import bisect_left, bisect -    S = eval(input()) +    input = sys.stdin.readline +    S = input().strip("\n") -    RL = [] -    B = [0] * N +    nL, nR = [N - 1] * N, [0] * N +    cl, cr = N - 1, 0 +    for i in range(1, N): +        if S[i] == "R": +            cr = i +        nR[i] = cr +        if S[N - i - 1] == "L": +            cl = N - i - 1 +        nL[N - i - 1] = cl +    sumC = [0] * N -            if i < N - 1 and S[i + 1] == "L": -                RL.append(i) -    for i in range(N): -        j = bisect_left(RL, i) -        if S[i] == "R": -            if (RL[j] - i) % 2 == 0: -                B[RL[j]] += 1 +            move = nL[i] - i +            if move % 2 == 0: +                sumC[nL[i]] += 1 -                B[RL[j] + 1] += 1 +                sumC[nL[i] - 1] += 1 -            if (i - RL[j - 1]) % 2 == 0: -                B[RL[j - 1]] += 1 +            move = i - nR[i] +            if move % 2 == 0: +                sumC[nR[i]] += 1 -                B[RL[j - 1] + 1] += 1 -    print((" ".join(map(str, B)))) +                sumC[nR[i] + 1] += 1 +    print((" ".join(map(str, sumC))))