#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 3;
int n;
string s;
vector<pair<int, int> > v;
void getranges(char x) {
  for (int i = 0; i < n; i++) {
    if (s[i] == x) {
      int l = i, r = i;
      while (l && s[l - 1] != 1 - (x - '0') + '0') l--;
      while (r != n - 1 && s[r + 1] != 1 - (x - '0') + '0') r++;
      v.push_back({l + 1, r + 1});
      i = r;
    }
  }
}
int solve(int len) {
  vector<pair<int, int> > vv;
  pair<int, int> last = {0, 0};
  int ans = 0;
  for (auto i : v) {
    if (i.second - i.first >= len) vv.push_back(i);
    pair<int, int> cur = {max(last.second + 1, i.first), i.second};
    int rem = (cur.second - cur.first + 1) % len;
    last = {cur.first, cur.second - rem};
    ans += (cur.second - cur.first + 1) / len;
  }
  v = vv;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> s;
  getranges('0');
  getranges('1');
  if (v.empty()) v.push_back({1, n});
  sort(v.begin(), v.end());
  for (int i = 1; i <= n; i++) cout << solve(i) << " ";
}
