# ABC136D - Gathering Children

def main():

    S = input().rstrip() + "R"

    n = len(S)

    # decompose into partial strings (RR...LL)

    cur, P = S[0], []

    for i in S[1:]:

        if cur[-1] == "L" and i == "R":

            P += [cur]

            cur = ""

        cur += i

    # children on even numbers -> even, odds -> odd

    # children gather the border of "RL"

    ans = []

    for p in P:

        e, o = len(p) // 2, len(p) // 2 + len(p) % 2

        r_cnt, l_cnt = p.count("R"), p.count("L")

        l, r = (e, o) if p.index("L") % 2 == 0 else (o, e)

        ans += [0] * (r_cnt - 1) + [l] + [r] + [0] * (l_cnt - 1)

    print((*ans))





if __name__ == "__main__":

    main()
# ABC136D - Gathering Children

def main():

    # children gather on the border of "RL"

    S = eval(input())

    # decompose into partial strings (RR...LL)

    P = S.replace("LR", "L R").split()

    ans = []

    for p in P:

        # children on even numbers -> even, odds -> odd

        e, o = len(p) // 2, len(p) // 2 + len(p) % 2

        l, r = (e, o) if p.index("L") % 2 == 0 else (o, e)

        ans += [0] * (p.count("R") - 1) + [l] + [r] + [0] * (p.count("L") - 1)

    print((*ans))





if __name__ == "__main__":

    main()
# ABC136D - Gathering Children
def main():
    S = input().rstrip() + "R"
    n = len(S)
    # decompose into partial strings (RR...LL)
    cur, P = S[0], []
    for i in S[1:]:
        if cur[-1] == "L" and i == "R":
            P += [cur]
            cur = ""
        cur += i
    # children on even numbers -> even, odds -> odd
    # children gather the border of "RL"
    ans = []
    for p in P:
        e, o = len(p) // 2, len(p) // 2 + len(p) % 2
        r_cnt, l_cnt = p.count("R"), p.count("L")
        l, r = (e, o) if p.index("L") % 2 == 0 else (o, e)
        ans += [0] * (r_cnt - 1) + [l] + [r] + [0] * (l_cnt - 1)
    print((*ans))


if __name__ == "__main__":
    main()

# ABC136D - Gathering Children
def main():
    # children gather on the border of "RL"
    S = eval(input())
    # decompose into partial strings (RR...LL)
    P = S.replace("LR", "L R").split()
    ans = []
    for p in P:
        # children on even numbers -> even, odds -> odd
        e, o = len(p) // 2, len(p) // 2 + len(p) % 2
        l, r = (e, o) if p.index("L") % 2 == 0 else (o, e)
        ans += [0] * (p.count("R") - 1) + [l] + [r] + [0] * (p.count("L") - 1)
    print((*ans))


if __name__ == "__main__":
    main()

-    S = input().rstrip() + "R" -    n = len(S) +    # children gather on the border of "RL" +    S = eval(input()) -    cur, P = S[0], [] -    for i in S[1:]: -        if cur[-1] == "L" and i == "R": -            P += [cur] -            cur = "" -        cur += i -    # children on even numbers -> even, odds -> odd -    # children gather the border of "RL" +    P = S.replace("LR", "L R").split() +        # children on even numbers -> even, odds -> odd -        r_cnt, l_cnt = p.count("R"), p.count("L") -        ans += [0] * (r_cnt - 1) + [l] + [r] + [0] * (l_cnt - 1) +        ans += [0] * (p.count("R") - 1) + [l] + [r] + [0] * (p.count("L") - 1)