#include<bits/stdc++.h>
using namespace std;
#define ll long long
bool on(int mask,int i)
{
return (mask>>i)&1;
}
int get(int x,int k)
{
int cnt=0;
for(int i=20;i>=0;i--)
{
if(on(x,i)&&(cnt|(1<<i))<=k)
{
cnt+=1<<i;
x^=1<<i;
}
}
return x;
}
signed main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int n,k;cin>>n>>k;
multiset<int>ms;
for(int mask=0;mask<(1<<20);mask++)
{
ms.insert(get(mask,k));
if(mask<=10)
{
cout<<get(mask,k)<<'\n';
}
}
return 0;
map<int,bool>op;
while(n--)
{
int x;cin>>x;
if(op[x]==0)
{
op[x]=1;
ms.erase(ms.find(get(x,k)));
}
else
{
op[x]=0;
ms.insert(get(x,k));
}
cout<<*ms.begin()<<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKYm9vbCBvbihpbnQgbWFzayxpbnQgaSkKewogICAgcmV0dXJuIChtYXNrPj5pKSYxOwp9CmludCBnZXQoaW50IHgsaW50IGspCnsKICAgIGludCBjbnQ9MDsKICAgIGZvcihpbnQgaT0yMDtpPj0wO2ktLSkKICAgIHsKICAgICAgICBpZihvbih4LGkpJiYoY250fCgxPDxpKSk8PWspCiAgICAgICAgewogICAgICAgICAgICBjbnQrPTE8PGk7CiAgICAgICAgICAgIHhePTE8PGk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIHg7Cn0Kc2lnbmVkIG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBpbnQgbixrO2Npbj4+bj4+azsKICAgIG11bHRpc2V0PGludD5tczsKICAgIGZvcihpbnQgbWFzaz0wO21hc2s8KDE8PDIwKTttYXNrKyspCiAgICB7CiAgICAgICAgbXMuaW5zZXJ0KGdldChtYXNrLGspKTsKICAgICAgICBpZihtYXNrPD0xMCkKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQ8PGdldChtYXNrLGspPDwnXG4nOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAwOwogICAgbWFwPGludCxib29sPm9wOwogICAgd2hpbGUobi0tKQogICAgewogICAgICAgIGludCB4O2Npbj4+eDsKICAgICAgICBpZihvcFt4XT09MCkKICAgICAgICB7CiAgICAgICAgICAgIG9wW3hdPTE7CiAgICAgICAgICAgIG1zLmVyYXNlKG1zLmZpbmQoZ2V0KHgsaykpKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgb3BbeF09MDsKICAgICAgICAgICAgbXMuaW5zZXJ0KGdldCh4LGspKTsKICAgICAgICB9CiAgICAgICAgY291dDw8Km1zLmJlZ2luKCk8PCdcbic7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==