#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N=1e6+5;
int MASK[N];bool op[N];
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<N;mask++)
{
MASK[mask]=get(mask,k);
ms.insert(MASK[mask]);
}
while(n--)
{
int x;cin>>x;
if(op[x]==0)
{
op[x]=1;
ms.erase(ms.find(MASK[x]));
}
else
{
op[x]=0;
ms.insert(MASK[x]);
}
cout<<*ms.begin()<<'\n';
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKY29uc3QgaW50IE49MWU2KzU7CmludCBNQVNLW05dO2Jvb2wgb3BbTl07CmJvb2wgb24oaW50IG1hc2ssaW50IGkpCnsKICAgIHJldHVybiAobWFzaz4+aSkmMTsKfQppbnQgZ2V0KGludCB4LGludCBrKQp7CiAgICBpbnQgY250PTA7CiAgICBmb3IoaW50IGk9MjA7aT49MDtpLS0pCiAgICB7CiAgICAgICAgaWYob24oeCxpKSYmKGNudHwoMTw8aSkpPD1rKQogICAgICAgIHsKICAgICAgICAgICAgY250Kz0xPDxpOwogICAgICAgICAgICB4Xj0xPDxpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiB4Owp9CnNpZ25lZCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwogICAgaW50IG4saztjaW4+Pm4+Pms7CiAgICBtdWx0aXNldDxpbnQ+bXM7CiAgICBmb3IoaW50IG1hc2s9MDttYXNrPE47bWFzaysrKQogICAgewogICAgICAgIE1BU0tbbWFza109Z2V0KG1hc2ssayk7CiAgICAgICAgbXMuaW5zZXJ0KE1BU0tbbWFza10pOwogICAgfQogICAgd2hpbGUobi0tKQogICAgewogICAgICAgIGludCB4O2Npbj4+eDsKICAgICAgICBpZihvcFt4XT09MCkKICAgICAgICB7CiAgICAgICAgICAgIG9wW3hdPTE7CiAgICAgICAgICAgIG1zLmVyYXNlKG1zLmZpbmQoTUFTS1t4XSkpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBvcFt4XT0wOwogICAgICAgICAgICBtcy5pbnNlcnQoTUFTS1t4XSk7CiAgICAgICAgfQogICAgICAgIGNvdXQ8PCptcy5iZWdpbigpPDwnXG4nOwogICAgfQogICAgcmV0dXJuIDA7Cn0=