/*																													   
 Templatka c++ Kacper Fis																							   																											   //
*/																													  
																								   
#include <bits/stdc++.h>																							   
																													   
using namespace std; 																								   
																													   
const int INF = 1000000001;																						   
const float PI = 3.14;																								   
typedef long long LL;																								   
																													   
typedef vector<int> vi;																								   
typedef list<int> li;																								   
typedef queue<int> qi; 																								   
typedef pair<int,int> ii; 																							   
typedef map<string,int> msi; //np msi['nazwa'] = 'liczba'															   
typedef vector<ii> vii; //vector par<int>, do tworzenia tablicy dla grafów wagowych #dijkstra #Bellman_Ford			   
typedef priority_queue< ii, vector<ii>, greater<ii> > pq; //kolejka priorytetowa vectorów par(top()=min) #dijkstra	   
																													   																				   list<int>::iterator it;																								   
list<int>::iterator it1;																							   
vector<int>::iterator it2;																							   
vector<int>::iterator it3;																							   
set<int>::iterator it4;																								   
map<string, int>::iterator it5; 																					   
vector<ii>::iterator iter;																							   
																													   																				   
#define print_list(x) for(it = (x).begin(); it != (x).end(); it++) {cout << *it << " ";}							   
#define print_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++) {cout << *it2 << " ";}						   
#define search_list(x) for(it = (x).begin(); it != (x).end(); it++)													   
#define search_vector(x) for(it2 = (x).begin(); it2 != (x).end(); it2++);											   
#define pb(x) push_back(x) 																							   
#define pf(x) push_front(x)																							   
#define mp(x, y) make_pair(x, y)                                                                                       
///////////////////////////////////////////////GLOBAL DEFINITIONS////////////////////////////////////////////////////////


///////////////////////////////////////////////FUNCTIONS/////////////////////////////////////////////////////////////


/////////////////////////////////////////////////////MAIN////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])																					 
{ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);                  												       
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    
  int n;
  string s;
  cin >> s;
  n = s.size();
  vector<int> ans(n);
	
  for(int i = 0; i < 2; i++){
	
	  //cout << "wyswietlenie s: " << s << endl;
	  //cout << "wyswietlenie ans: " << endl;
	  //for(auto it : ans){
		  //cout << it << " ";
	  //}
	  //cout << endl; 
	  
	  
	  int cnt = 0;
	  for(int j = 0; j < n; j++){
		  if(s[j] == 'R') cnt++;
		  else{
			 // cout << "j: " << j << endl;
			  //cout << "cnt: " << cnt << endl;
			  ans[j] += cnt/2;
			  ans[j-1] += (cnt+1)/2;
			  cnt = 0;
		  }
	  }
	
	  //cout << "wyswietlenie ans after adding: " << endl;
	  //for(auto it : ans){
		  //cout << it << " ";
	  //}
	  //cout << endl; 
	
	  reverse(ans.begin(), ans.end());
	  reverse(s.begin(), s.end());
	  for(int i = 0; i < n; i++){
		  if(s[i] == 'L') s[i] = 'R';
		  else s[i] = 'L';
	  }
	 // cout << endl;
  }
  
  for(int i = 0; i < n; i++){
	  cout << ans[i] << " ";
  }
  
  
  
  
    
   
    
    
    
    
	return 0;
}


Measured memory_bytes: 1104