#include <bits/stdc++.h>
using namespace std;
long long labs(long long a) { return a < 0 ? (-a) : a; }
long long max(long long a, long long b) { return a > b ? a : b; }
long long min(long long a, long long b) { return a < b ? a : b; }
template <typename T>
struct Point {
  T x, y;
  Point() {}
  Point(T xx, T yy) : x(xx), y(yy) {}
};
template <typename T>
bool operator<(const Point<T> &p1, const Point<T> &p2) {
  return p1.x < p2.x || p1.x == p2.x && p1.y < p2.y;
}
vector<int> v;
string s;
void GoBack(int i) {
  if (i < 0) return;
  if (s[i] == 'L' && v[i] <= v[i + 1]) {
    v[i] = v[i + 1] + 1;
    GoBack(i - 1);
  } else if (s[i] == '=' && v[i] != v[i + 1]) {
    v[i] = v[i + 1];
    GoBack(i - 1);
  }
}
int main() {
  int n;
  cin >> n >> s;
  v.assign(n, 0);
  v[0] = 1;
  for (int(i) = 0; (i) < (n - 1); (i)++) {
    if (s[i] == 'L') {
      v[i + 1] = 1;
      GoBack(i);
    } else if (s[i] == 'R') {
      v[i + 1] = v[i] + 1;
    } else {
      v[i + 1] = v[i];
    }
  }
  for (int(i) = 0; (i) < (n); (i)++) {
    cout << v[i] << " ";
  }
  return 0;
}
