#include<bits/stdc++.h>
using namespace std;
int main() {
int t;
cin>>t;
while(t--){
int n,b,c;
cin>>n>>b;
unordered_map<int,int> mp;
unordered_map<int,int> present;
for(int i=0;i<n;i++){
cin>>c;
mp[c]++;
present[c]=1;
}
if(n==1){
cout<<1<< " " <<0<<endl;
continue;
}
int sol=0;
int changes = 0;
for(auto it: mp){
if(it.second==n){
sol=n;
break;
}
if(it.second>=sol){
sol=it.second;
}
}
if(b==0){
cout<< sol << " " << changes << endl;
continue;
}
for(auto it:mp){
if(present[(it.first)^b]==1){
if(it.second+mp[(it.first)^b]>sol){
sol=it.second + mp[(it.first)^b];
changes=min(it.second,mp[(it.first)^b]);
}
else if(it.second + mp[(it.first)^b]==sol){
if(min(it.second,mp[(it.first)^b]) < changes){
changes = min(it.second, mp[(it.first)^b]);
}
}
}
}
cout<<sol<<" "<<changes<<endl;
}
return 0;
}
0 Comments