#include<bits/stdc++.h> using namespace std; typedef unsigned long long ull; int main(){ int n; ull a[200000],b; cin>>n>>b; for(int i=0;i<n;i++) cin>>a[i]; sort(a,a+n); int d=bit_width(b)-1; vector<ull>ltd,eqd; for(int i=0;i<n;i++){ int tmp=bit_width(a[i])-1; if(tmp<d) ltd.push_back(a[i]); if(tmp==d) eqd.push_back(a[i]); } for(int i=0;i<ltd.size();i++) b^=ltd[i]; if(eqd.empty()){ cout<<ltd.size()<<endl; return 0; } if(b>=eqd[0]){ cout<<ltd.size()+1<<endl; return 0; } }