#include <bits/stdc++.h>
const double PI = 3.14159265358979323846;
const int maxn = 1e5 + 10;
const int INF = 2e9;
const int MOD = 1e9 + 7;
using namespace std;
int n, m, k;
void solve() {
  string s;
  cin >> n >> s;
  vector<int> pr(n + 1);
  int pr1 = 0, pr0 = 0;
  for (int i = 1; i <= n; ++i) {
    if (s[i - 1] == '1') {
      pr[i] = pr0;
      pr1 = i;
    }
    if (s[i - 1] == '0') {
      pr[i] = pr1;
      pr0 = i;
    }
    if (s[i - 1] == '?') {
      pr[i] = min(pr0, pr1);
    }
  }
  for (int i = 1; i <= n; ++i) {
    int ans = 0;
    for (int j = i; j <= n; j += i) {
      if (j - pr[j] >= i)
        ans++;
      else
        j = pr[j];
    }
    cout << ans << ' ';
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int qq = 1;
  while (qq--) solve();
  return 0;
}
