#include<bits/stdc++.h>

using namespace std;
using ll = long long;
using P = pair<int,int>;
using Pl = pair<ll,ll>;
#define REP(i,n) for(ll i = 0;i < (ll)n;i++)
#define REPD(i,n) for(ll i = (ll)n - 1;i >= 0;i--)
#define ALL(x) (x).begin(),(x).end()
#define FILLl(n,first_dimension_size,value) fill((ll*)n,(ll*)(n+first_dimension_size),value)
#define FILL(n,first_dimension_size,value) fill((int*)n,(int*)(n+first_dimension_size),value)
#define INF (1 << 29)
#define MOD 1000000007
//int dx[4] = {1,0,0,-1};
//int dy[4] = {0,1,-1,0};




int main(){
  
  string s;
  cin >> s;
  s += '0';
  vector<string> v;
  int left = 0;
  for(int i = 0;i < s.size()-1;i++){
    if(s[i] != s[i+1])v.push_back(s.substr(left,i-left+1)),left = i+1;
  }
  vector<int> posi(v.size(),0);
  for(int i = 1;i < v.size();i++){
    posi[i] = v[i-1].size() + posi[i-1];
  }
  s.erase(--s.end());
  vector<int> res(s.size(),0);
  if(v[0][0] == 'L'){
    res[0] = v[0].size();
    for(int i = 1;i < v.size();i+=2){
      if(((int)v[i].size() & 1) && ((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2+1;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2+1;
      }else if(!((int)v[i].size() & 1) && ((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2+1;
      }else if(((int)v[i].size() & 1) && !((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2+1;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2;
      }else if(!((int)v[i].size() & 1) && !((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2;
      }
    }
  }else{
    for(int i = 0;i < v.size();i+=2){
      if(((int)v[i].size() & 1) && ((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2+1;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2+1;
      }else if(!((int)v[i].size() & 1) && ((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2+1;
      }else if(((int)v[i].size() & 1) && !((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2+1;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2;
      }else if(!((int)v[i].size() & 1) && !((int)v[i+1].size() & 1)){
        res[posi[i+1]-1] = (int)v[i].size()/2;
        res[posi[i+1]-1] += (int)v[i+1].size()/2;
        res[posi[i+1]] = (int)v[i].size()/2;
        res[posi[i+1]] += (int)v[i+1].size()/2;
      }
    }
  }
  if(v[v.size()-1][0] == 'R')res[posi[posi.size()-1]] = v[v.size()-1].size();
  for(auto au : res){
    cout << au << " ";
  }

  
  


  return 0;
}


Measured memory_bytes: 6772