#include using namespace std; int mas[100001],n,k; int MAX[5001][5001]; int MIN[5001][5001]; int OR[5001][5001]; int AND[5001][5001]; int ans[100001],k2; int main() { cin>>n>>k2; for (int i=1;i<=n;i++){ cin>>mas[i]; } for (int i=1;i<=n;i++){ MAX[i][i]=mas[i]; MIN[i][i]=mas[i]; OR[i][i]=mas[i]; AND[i][i]=mas[i]; for (int j=i+1;j<=n;j++){ MAX[i][j]=max(MAX[i][j-1],mas[j]); MIN[i][j]=min(MIN[i][j-1],mas[j]); OR[i][j]=(OR[i][j-1]|mas[j]); AND[i][j]=(AND[i][j-1]&mas[j]); } } for (int i=1;i<=n;i++){ for (int j=1;j<=i;j++){ for (int k=i;k<=n;k++){ int cost=0; cost=(OR[j][k]-AND[j][k])-(MAX[j][k]-MIN[j][k]); if (cost>=k2){ ans[i]=max(ans[i],k-j+1); } } } } for (int i=1;i<=n;i++){ if(ans[i]==0) cout<<-1<