#!/bin/python3 import sys def costlyIntervals(n, k, A): # Return a list of length n consisting of the answers left, right = pow(2, 32)-1, 0 for i in range(n): for j in range(i+1, n+1): _max, _min = max(A[i:j]), min(A[i:j]) _or = _and = A[i] for l in range(i+1, j): _or = _or | A[l] _and = _and & A[l] cost = (_or - _and) - (_max - _min) if cost >= k: left = min(left, i) right = max(right, j-1) size = right - left + 1 result = [] for i in range(n): if i >= left and i <= right: result.append(size) else: result.append(-1) return result if __name__ == "__main__": n, k = input().strip().split(' ') n, k = [int(n), int(k)] A = list(map(int, input().strip().split(' '))) result = costlyIntervals(n, k, A) print ("\n".join(map(str, result)))