/*
ID: thanhvq1
LANG: C++14
PROB: namenum
*/

#pragma GCC optimize ("O2")
#include<bits/stdc++.h>
#include<unistd.h>
using namespace std;

// defines
#define int long long
typedef long long ll;
#define double long double
#define vec vector
#define vi vector<int>
#define vvi vector<vector<int>>
#define FZ(n) memset((n),0,sizeof())
#define FMO(n) memset((n),-1,sizeof(n))
#define unset unordered_set
#define ii pair<int, int>
#define vii vector<ii>
#define F first
#define S second
#define mp make_pair
#define PB push_back
#define ALL(x) begin(x),end(x)
#define SZ(x) ((int)(x).size())
#define FOR(i, a, b) for(int i = (a); i < (b); i++)
#define FORE(i, a, b) for(int i = (a); i <= (b); i++)
#define FORD(i, a, b) for(int i = (a); i >= (b); i--)
#define bitcount(n) __builtin_popcountll(n)
#define reset(x, y) memset(x, y, sizeof(x))
#define uni(x) (x).erase(unique(all(x)), (x).end());
#define debug(x) cout << #x << " = " << (x) << endl
#define debug2(x, y) cout<<#x<<" = "<<(x)<<", "<<#y<<" = "<<(y)<< endl
#define debug3(x, y, z) cout<<#x<<" = "<<(x)<<", "<<#y<<" = "<<(y)<<", "<<#z<<" = "<<(z)<<endl
#define chkmin(a, b) a = min(a, b)
#define chkmax(a, b) a = max(a, b)
#define max3(a, b, c) max(a, b) > max(b, c) ? max(a, b) : max(b, c)
#define min3(a, b, c) min(a, b) < min(b, c) ? min(a, b) : min(b, c)

//permanent constants
const long long INF64 = 1e18; const int INF32 = 1e9; const int BIG = (int)(1e9 + 239);
const int MOD = 998244353; //1e9 + 7;  const ll MOD2 = (ll)MOD * (ll)MOD;
const double PI = 2.0*acos(0.0); //acos(-1.0L);
const double EPS = static_cast<double>(1e-10);
const int day[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
const int dx[4] = {0, 1, 0, -1}; const int dy[4] = {1, 0, -1, 0};
//const ll INF = (ll)(1e18 + 239);

//random
mt19937 rnd(239); //(chrono::high_resolution_clock::now().time_since_epoch().count());

void FILEIO() {  freopen("in.txt", "r", stdin);  freopen("out.txt", "w", stdout); }
//void FILEIO()   {freopen("in.txt", "w", stdout);}
//void FILEIO() {  freopen("namenum.in", "r", stdin);  freopen("namenum.out", "w", stdout); }
void input() {   }

void solve() {
	string s; cin >> s; int n = (int)s.length();
	vi cnt, id; // cnt[0] = so 'R' dau tien, cnt[1] = co 'L" tiep theo, ...
	int st = 0, ed = 0;
	while(st<n and ed<n) {
		char c = s[st];
		while(ed<n and s[ed]==c) ed++;
		cnt.PB(ed-st); id.PB(ed-1);
		st = ed;
	}
	
//	FOR(i, 0, SZ(cnt)) cout << cnt[i] << ","; cout << endl;
//	FOR(i, 0, SZ(id)) cout << id[i] << ","; cout << endl;
	
	vi ans(n); FOR(i, 0, n) ans[i]=0;
	FOR(i, 0, SZ(cnt)) {// 
		if(i%2==0) {// block R
//			// vi tri R cuoi cung: phai den L roi quay lai
//			if( cnt[i]%2==0 ) { //vi du: RRRRL: cnt[i] = 4 
//				ans[id[i]] += cnt[i]/2; //tai vi tri R cuoi cung
//				ans[id[i]+1] += cnt[i]/2; // tai vi tri L 
//			}
//			else { // vi du RRRRRL, cnt[i]=5
//				ans[id[i]] += cnt[i]/2+1; //tai vi tri R cuoi cung: co 3 R quay ve
//				ans[id[i]+1] += cnt[i]/2; // tai vi tri L : co 2 R den sau so chan buoc di
//			}

			//Rut gon:
			ans[id[i]] += (cnt[i]+1)/2; 
			ans[id[i]+1] += cnt[i]/2; 
			
			
//			debug(i);
//			FOR(i, 0, n) cout << ans[i] <<","; cout << endl;
			
		}
		else { // block L
//			// vi tri L dau tien: phai nguoc den R roi quay lai
//			if( cnt[i]%2==0 ) { //vi du: RLLLL: cnt[i] = 4 
//				ans[id[i-1]] += cnt[i]/2; //tai vi tri R cuoi cung
//				ans[id[i-1]+1] += cnt[i]/2; // tai vi tri L 
//			}
//			else { // vi du RLLLLL, cnt[i]=5
//				ans[id[i-1]] += cnt[i]/2; //tai vi tri R cuoi cung: co 3 R quay ve
//				ans[id[i-1]+1] += cnt[i]/2+1; // tai vi tri L : co 2 R den sau so chan buoc di
//			}

			// van nhu o tren, nhung rut gon:
			ans[id[i-1]] += cnt[i]/2; 
			ans[id[i-1]+1] += (cnt[i]+1)/2; 
			
			
//			debug(i);
//			FOR(i, 0, n) cout << ans[i] <<","; cout << endl;
			
		}
	}
	FOR(i, 0, n) cout << ans[i] << " ";
	cout << endl;
}

signed main() {
  ios_base::sync_with_stdio(false); cin.tie();
//  FILEIO();
//auto beginProgram = chrono::steady_clock::now();

//  int test = 0;
//  int t; cin >> t;
//  while(t--)
  {
//	  cout << "Case " << ++test << ": ";
	  solve();
  }

//  auto endProgram = chrono::steady_clock::now();
//  cout << chrono::duration_cast<chrono::milliseconds>(endProgram - beginProgram).count() << " ms" << endl;

  return 0;
}



Measured memory_bytes: 3132