#include <bits/stdc++.h>
int n, vis[1005], dis[1005], flag = 0;
std::vector<int> a[1005], b[1005];
void add(int x, int y, long long v) {
  a[x].push_back(y);
  b[x].push_back(v);
}
void spfa(int s) {
  std::queue<int> q;
  for (int i = 0; i <= n; i++) vis[i] = 0, dis[i] = -1000000000;
  dis[s] = 0;
  vis[s] = 1;
  q.push(s);
  while (!q.empty()) {
    int v = q.front();
    q.pop();
    vis[v] = 0;
    for (int i = 0; i < a[v].size(); i++) {
      int u = a[v][i], s = b[v][i];
      if (dis[u] < dis[v] + s) {
        dis[u] = dis[v] + s;
        if (!vis[u]) q.push(u), vis[u] = 1;
      }
    }
  }
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    char ch = ' ';
    while (ch != 'R' && ch != 'L' && ch != '=') ch = getchar();
    if (ch == 'L') add(i + 1, i, 1);
    if (ch == 'R') add(i, i + 1, 1);
    if (ch == '=') add(i + 1, i, 0), add(i, i + 1, 0);
  }
  for (int i = 1; i <= n; i++) add(0, i, 1);
  spfa(0);
  for (int i = 1; i <= n; i++) printf("%d ", dis[i]);
  printf("\n");
  return 0;
}
