// Original C++ solution (slower):
#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

const ll MAXN=1e5+5;

ll n,h[MAXN],nr[MAXN],nl[MAXN],out[MAXN];

char str[MAXN];

vector<ll>v;

void getnr()

{

    ll pre=0;

    for(ll i=1;i<=n;i++)

    {

        if(str[i]!='R')

        {

            pre=i;

        }

        nr[i]=pre;

    }

}

void getnl()

{

    ll post=n+1;

    for(ll i=n;i>=1;i--)

    {

        if(str[i]!='L')

        {

            post=i;

        }

        nl[i]=post;

    }

}

void solve()

{

    n=strlen(str+1);



    getnr();

    getnl();



    for(ll i=1;i<n;i++)

    {

        if(str[i]=='R'&&str[i+1]=='L')

        {

            v.push_back(i);

        }

    }

    for(ll i=0;i<v.size();i++)

    {

        ll now=v[i];

        ll l=nr[now];

        ll r=nl[now+1];

        r--;

        l++;

        ll numr=now-l+1;

        ll numl=r-(now+1)+1;

        ll len=r-l+1,ans1,ans2;

        if(len&1)

        {

            if(numr>numl)

            {

                if(numr&1)

                {

                    ans1=len/2+1;

                    ans2=len/2;

                }

                else

                {

                    ans1=len/2;

                    ans2=len/2+1;

                }

            }

            else

            {

                if(numl&1)

                {

                    ans1=len/2;

                    ans2=len/2+1;

                }

                else

                {

                    ans1=len/2+1;

                    ans2=len/2;

                }

            }

        }

        else

        {

            ans1=ans2=len/2;

        }

        for(ll j=l;j<=r;j++)

        {

            if(j==now)

            {

                out[j]=ans1;

            }

            else if(j==now+1)

            {

                out[j]=ans2;

            }

            else

            {

                out[j]=0;

            }

        }

    }

    for(ll i=1;i<=n;i++)

    {

        printf("%lld ",out[i]);

    }

    printf("\n");

}

int main()

{

    scanf("%s",str+1);

    solve();

}


// Optimized solution to the same problem (faster):
#include<stdio.h>

#include<string.h>





int main()

{

	char s[100005];

	int a[100005] = {0}, i=0, bsr,bsl, len;

	scanf("%s", s);

	len = strlen(s);

	while (i < len-1)

	{

		for (bsr=0; (bsr+i) < len-1; bsr++)/*寻找RL字符串*/

		{

			if ((s[i + bsr] == 'R') && (s[i + bsr + 1] == 'L'))

			{

				if (bsr % 2 == 0)

				{

					a[i + bsr] += (bsr / 2 + 1); a[i + bsr + 1] += bsr / 2;

				}

				else

				{

					a[i + bsr] += ((bsr + 1) / 2); a[i + bsr + 1] += ((bsr + 1) / 2);

				}

				for (bsl = 1; (i + bsr + bsl) < len; bsl++)

				{

					if (s[i + bsr + bsl] == 'R')

					{

						bsl--;

						break;

					}

					if ((i + bsr + bsl) == (len - 1))

						break;

				}

				if (bsl % 2 == 1)

				{

					a[i + bsr] += bsl / 2; a[i + bsr + 1] += (bsl / 2 + 1);

				}

				else

				{

					a[i + bsr] += bsl / 2; a[i + bsr + 1] += bsl / 2;

				}

				i = i + bsr + bsl + 1;

				break;

			}

		}

	}

	for (i = 0; i < len-1; i++)

		printf("%d ", a[i]);

	printf("%d\n", a[i]);

}

// Fastest known solution for this problem: