#include <bits/stdc++.h>
using namespace std;
const int mxN = 1e6 + 5;
int inds[mxN], ul[mxN];
string upd(string& s) {
  int c = 1;
  char prev = '?', cur = s[0];
  for (int i = 1; i < s.size(); ++i) {
    if (s[i] != s[i - 1]) {
      if (s[i - 1] == '?') {
        if (prev == '?') {
          prev = s[i];
        }
        if (prev == s[i]) {
          for (int j = 1; j <= c; ++j) {
            s[i - j] = s[i];
          }
        }
      }
      prev = s[i - 1];
      c = 0;
    }
    ++c;
  }
  if (c > 0 && s[s.length() - 1] == '?') {
    for (int j = 1; j <= c; ++j) {
      s[s.length() - j] = prev;
    }
  }
  return s;
}
void solve() {
  int n;
  string s;
  cin >> n >> s;
  vector<int> counts, qs;
  n = s.size();
  upd(s);
  int cur = s[0], st = 0;
  for (int i = 1; i < n; ++i) {
    if (s[i] != cur) {
      cur = s[i];
      inds[st] = i;
      st = i;
    }
  }
  inds[st] = n;
  inds[n] = n;
  for (int j = 1; j <= n; ++j) {
    int i = 0, ans = 0, ad = 0, mxad = 0;
    while (i < n) {
      if (ul[i]) {
        st = i;
        while (i < n && ul[i]) {
          i = inds[i];
        }
        inds[st] = i;
        ad = 0;
      }
      if (s[i] == '?') {
        if (ul[inds[i]]) {
          ul[i] = 1;
          i = inds[i];
          continue;
        }
        ad = inds[i] - i;
        i = inds[i];
      }
      int len1 = inds[i] - i + ad;
      if (inds[i] < n && s[inds[i]] == '?') {
        int len2 = inds[inds[i]] - inds[i];
        if ((mxad + len1 + len2) < j) {
          ul[i] = 1;
        }
        if (len1 % j && (len1 % j + len2) >= j) {
          ans += len1 / j + 1;
          ad = len2 - j + len1 % j;
        } else {
          ans += len1 / j;
          ad = len2;
        }
        mxad = len2;
        i = inds[inds[i]];
      } else {
        if ((mxad + len1) < j) {
          ul[i] = 1;
        }
        ans += len1 / j;
        ad = 0;
        mxad = 0;
        i = inds[i];
      }
    }
    cout << ans << " ";
  }
  cout << endl;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  solve();
  return 0;
}
