#include <bits/stdc++.h>
using namespace std;
int n, a[100010], ans;
bool mp[100010];
int BL(int k) {
  int res = 0, num;
  for (int i = 1, l; i <= n; i++) {
    num = 0, l = i;
    while (1) {
      if (!mp[a[l]]) mp[a[l]] = 1, num++;
      if (l > n || num > k) break;
      l++;
    }
    for (int j = i; j <= l; j++) mp[a[j]] = 0;
    l--;
    res++;
    i = l;
  }
  return res;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i <= n; i++) scanf("%d", &a[i]);
  for (int i = 1; i <= sqrt(n); i++) printf("%d\n", ans = BL(i));
  for (int i = sqrt(n) + 1, l, r, mid; i <= n; i++) {
    ans = BL(i);
    l = i, r = n;
    while (l < r) {
      mid = (l + r + 1) >> 1;
      if (BL(mid) == ans)
        l = mid;
      else
        r = mid - 1;
    }
    for (int j = i; j <= l; j++) printf("%d\n", ans);
    i = l;
  }
  return 0;
}
