#include <bits/stdc++.h>
using namespace std;
int main() {
int n,k;
cin>>n>>k;
vector<int> numbers(n);
for(auto& number: numbers){
cin>>number;
}
int largest = INT_MIN, smallest = INT_MAX;
unordered_map<int,int> firstOccurrence, lastOccurrence;
int xorSum = 0;
firstOccurrence[0] = -1, lastOccurrence[0] = -1;
for(int i=0; i<n; i++){
xorSum ^= numbers[i];
if(firstOccurrence.find(xorSum^k) != firstOccurrence.end()){
largest = max(largest, i - firstOccurrence[xorSum^k]);
smallest = min(smallest, i - lastOccurrence[xorSum^k]);
}
if(firstOccurrence.find(xorSum) == firstOccurrence.end())firstOccurrence[xorSum] = i;
lastOccurrence[xorSum] = i;
}
cout<<largest<<" "<<smallest<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpIHsKCQoJaW50IG4sazsKCWNpbj4+bj4+azsKCQoJdmVjdG9yPGludD4gbnVtYmVycyhuKTsKCQoJZm9yKGF1dG8mIG51bWJlcjogbnVtYmVycyl7CgkJY2luPj5udW1iZXI7Cgl9CgkKCWludCBsYXJnZXN0ID0gSU5UX01JTiwgc21hbGxlc3QgPSBJTlRfTUFYOwoJCgl1bm9yZGVyZWRfbWFwPGludCxpbnQ+IGZpcnN0T2NjdXJyZW5jZSwgbGFzdE9jY3VycmVuY2U7CgkKCWludCB4b3JTdW0gPSAwOwoJCglmaXJzdE9jY3VycmVuY2VbMF0gPSAtMSwgbGFzdE9jY3VycmVuY2VbMF0gPSAtMTsKCQoJZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKCQl4b3JTdW0gXj0gbnVtYmVyc1tpXTsKCQkKCQlpZihmaXJzdE9jY3VycmVuY2UuZmluZCh4b3JTdW1eaykgIT0gZmlyc3RPY2N1cnJlbmNlLmVuZCgpKXsKCQkJbGFyZ2VzdCA9IG1heChsYXJnZXN0LCBpIC0gZmlyc3RPY2N1cnJlbmNlW3hvclN1bV5rXSk7CgkJCXNtYWxsZXN0ID0gbWluKHNtYWxsZXN0LCBpIC0gbGFzdE9jY3VycmVuY2VbeG9yU3VtXmtdKTsKCQl9CgkJCgkJaWYoZmlyc3RPY2N1cnJlbmNlLmZpbmQoeG9yU3VtKSA9PSBmaXJzdE9jY3VycmVuY2UuZW5kKCkpZmlyc3RPY2N1cnJlbmNlW3hvclN1bV0gPSBpOwoJCQoJCWxhc3RPY2N1cnJlbmNlW3hvclN1bV0gPSBpOwoJfQoJCgljb3V0PDxsYXJnZXN0PDwiICI8PHNtYWxsZXN0PDxlbmRsOwoJCglyZXR1cm4gMDsKfQ==