n,m = map(int, input().split()) A = list(map(int, input().split())) cnt = {} if(m==0): print(*(n-i for i in range(n))) exit() def add(x): if(x >= m): return if(x not in cnt): cnt[x] = 0 cnt[x] += 1 def remove(x): if(x >= m): return cnt[x] -= 1 if(cnt[x] == 0): del cnt[x] B = [0]*n # 開区間[l, r) l = 0 r = 0 while l < n: if(len(cnt) == m): # print(A[l:r]) # imos a = r-l b = a + (n-r) B[a-1] += 1 if(b < n): B[b] -= 1 # print(a,b) remove(A[l]) l += 1 else: if(r == n): break add(A[r]) r += 1 CB = [0] for i in range(n): CB.append(CB[-1] + B[i]) print(*CB[1:])