#include <bits/stdc++.h>
using namespace std;
const int INF = int(1e5);
const long long INFL = LLONG_MAX;
const long double pi = acos(-1);
int N;
int A[1111];
string s;
int canFill(int index) {
  int mn = 1;
  int origIndex = index;
  while (index - 1 >= 1 && s[index - 1] == '=') {
    index--;
  }
  if (index - 1 >= 1 && s[index - 1] == 'R') {
    if (A[index - 1] >= INF) return 0;
  }
  index = origIndex;
  while (index <= N && s[index] == '=') {
    index++;
  }
  if (index <= N && s[index] == 'L') {
    if (A[index + 1] >= INF) return 0;
  }
  return 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cout.precision(15);
  cout << fixed;
  cout.tie(0);
  cin.tie(0);
  cin >> N >> s;
  s = " " + s;
  for (int(i) = 1, j123 = N; (i) <= j123; (i)++) A[i] = INF;
  for (int(hello) = 1, j123 = N; (hello) <= j123; (hello)++) {
    for (int(i) = 1, j123 = N; (i) <= j123; (i)++) {
      if (A[i] < INF) continue;
      if (canFill(i)) {
        int mn = 1;
        int ind = i;
        while (ind - 1 >= 1 && s[ind - 1] == '=') ind--;
        if (ind > 1 && s[ind - 1] == 'R') {
          mn = max(mn, A[ind - 1] + 1);
        }
        ind = i;
        while (ind < N && s[ind] == '=') ind++;
        if (ind < N && s[ind] == 'L') {
          mn = max(mn, A[ind + 1] + 1);
        }
        if (mn >= INF) continue;
        A[i] = mn;
      }
    }
  }
  for (int(i) = 1, j123 = N; (i) <= j123; (i)++)
    cout << A[i] << (i + 1 <= N ? ' ' : '\n');
}
