# -*- coding: utf-8 -*-

S = eval(input())

len_S = len(S)

#Rは右方向に最も近いL,Lは左方向に最も近いRを探す

S_asshuku = []

min_lens = []

ret_list = [0] * len_S

cnt = 1

for i in range(1,len_S):

    if S[i]==S[i-1]:

        cnt+=1

    else:

        S_asshuku.append(cnt)

        cnt = 1

S_asshuku.append(cnt)

for i,v in enumerate(S_asshuku):

    if i%2==0:#Rの場合

        min_lens += list(range(v,0,-1))

    else:#Lの場合

        min_lens += list(range(1,v+1))

for i,(s,ml) in enumerate(zip(S,min_lens)):

    if s=="R":

        ret_list[i+ml-ml%2]+=1

    else:

        ret_list[i-ml+ml%2]+=1

print((" ".join(list(map(str,ret_list)))))

s = eval(input())

ss = []

s1  ="R"

cnt = 0

for i in s:

    if i == s1:

        cnt+=1

    else:

        ss.append(cnt)

        cnt = 1

        if s1=="R":

            s1="L"

        else:

            s1="R"

ss.append(cnt)

ret = [0] * len(s)

v_total = 0

for i,v in enumerate(ss):

    v_total += v

    if i % 2 == 0:

        ret[v_total]+=v//2

        ret[v_total-1]+=(v+1)//2

    else:

        ret[v_total-v]+=(v+1)//2

        ret[v_total-v-1]+=v//2

print((" ".join(map(str,ret))))
# -*- coding: utf-8 -*-
S = eval(input())
len_S = len(S)
# Rは右方向に最も近いL,Lは左方向に最も近いRを探す
S_asshuku = []
min_lens = []
ret_list = [0] * len_S
cnt = 1
for i in range(1, len_S):
    if S[i] == S[i - 1]:
        cnt += 1
    else:
        S_asshuku.append(cnt)
        cnt = 1
S_asshuku.append(cnt)
for i, v in enumerate(S_asshuku):
    if i % 2 == 0:  # Rの場合
        min_lens += list(range(v, 0, -1))
    else:  # Lの場合
        min_lens += list(range(1, v + 1))
for i, (s, ml) in enumerate(zip(S, min_lens)):
    if s == "R":
        ret_list[i + ml - ml % 2] += 1
    else:
        ret_list[i - ml + ml % 2] += 1
print((" ".join(list(map(str, ret_list)))))

s = eval(input())
ss = []
s1 = "R"
cnt = 0
for i in s:
    if i == s1:
        cnt += 1
    else:
        ss.append(cnt)
        cnt = 1
        if s1 == "R":
            s1 = "L"
        else:
            s1 = "R"
ss.append(cnt)
ret = [0] * len(s)
v_total = 0
for i, v in enumerate(ss):
    v_total += v
    if i % 2 == 0:
        ret[v_total] += v // 2
        ret[v_total - 1] += (v + 1) // 2
    else:
        ret[v_total - v] += (v + 1) // 2
        ret[v_total - v - 1] += v // 2
print((" ".join(map(str, ret))))

-# -*- coding: utf-8 -*- -S = eval(input()) -len_S = len(S) -# Rは右方向に最も近いL,Lは左方向に最も近いRを探す -S_asshuku = [] -min_lens = [] -ret_list = [0] * len_S -cnt = 1 -for i in range(1, len_S): -    if S[i] == S[i - 1]: +s = eval(input()) +ss = [] +s1 = "R" +cnt = 0 +for i in s: +    if i == s1: -        S_asshuku.append(cnt) +        ss.append(cnt) -S_asshuku.append(cnt) -for i, v in enumerate(S_asshuku): -    if i % 2 == 0:  # Rの場合 -        min_lens += list(range(v, 0, -1)) -    else:  # Lの場合 -        min_lens += list(range(1, v + 1)) -for i, (s, ml) in enumerate(zip(S, min_lens)): -    if s == "R": -        ret_list[i + ml - ml % 2] += 1 +        if s1 == "R": +            s1 = "L" +        else: +            s1 = "R" +ss.append(cnt) +ret = [0] * len(s) +v_total = 0 +for i, v in enumerate(ss): +    v_total += v +    if i % 2 == 0: +        ret[v_total] += v // 2 +        ret[v_total - 1] += (v + 1) // 2 -        ret_list[i - ml + ml % 2] += 1 -print((" ".join(list(map(str, ret_list))))) +        ret[v_total - v] += (v + 1) // 2 +        ret[v_total - v - 1] += v // 2 +print((" ".join(map(str, ret))))