#include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i, n) for(i = 0; i < n; i++) #define int long long using namespace std; int n, m; int a[200000]; int cnt[200001], oncnt = 0; int imos[200001]; signed main() { int i, j; cin >> n >> m; rep(i, n) cin >> a[i]; if (m == 0) { for (int i = n; i >= 1; i--) { cout << i << endl; } return 0; } j = 0; rep(i, n) { for (; j < n; j++) { if (oncnt >= m) break; cnt[a[j]]++; if (cnt[a[j]] == 1 && a[j] < m) oncnt++; } if (oncnt >= m) { //cout << i << ", " << j << ", oncnt: " << oncnt << endl; imos[j - i]++; imos[n - i + 1]--; //cout << "j - i: " << j - i << endl; } cnt[a[i]]--; if (cnt[a[i]] == 0 && a[i] < m) oncnt--; } for (i = 0; i < n; i++) imos[i + 1] += imos[i]; for (i = 1; i <= n; i++) { cout << imos[i] << endl; } return 0; }