#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  int n;
  string s;
  cin >> n >> s;
  int pre[2]{-1, -1}, last[n][2], next[n][2];
  for (int i = 0; i < n; ++i) {
    if (s[i] != '?')
      while (pre[s[i] - '0'] < i) next[++pre[s[i] - '0']][s[i] - '0'] = i;
    last[i][0] = pre[0], last[i][1] = pre[1];
  }
  while (pre[0] < n - 1) next[++pre[0]][0] = n;
  while (pre[1] < n - 1) next[++pre[1]][1] = n;
  for (int x = 1; x <= n; ++x) {
    int ans = 0, i = 0;
    while (i + x <= n) {
      if (max(next[i][0], next[i][1]) >= i + x)
        ++ans, i += x;
      else
        i = min(last[i + x - 1][0], last[i + x - 1][1]) + 1;
    }
    cout << ans << ' ';
  }
}
