#include <bits/stdc++.h>
using namespace std;
#define int long long
const int inf = 1e15;
int MAX = 1000005;
const int N = 31;
struct node {
int adj[2]{};
int &operator[](int i) { return adj[i]; }
};
struct Trie {
vector<node> trie;
int newnode() {
trie.emplace_back();
return trie.size() - 1;
}
void init() {
newnode();
}
int update(int val) {
int u = 0;
for (int i = N-1; ~i; i--) {
int v = (val >> i) & 1;
if (!trie[u][v]) {
trie[u][v] = newnode();
}
u = trie[u][v];
}
u = 0;
int ans{};
for (int i = N-1; ~i; i--) {
int v = (val >> i)& 1;
if (trie[u][!v]) {
u = trie[u][!v];
}
else {
u = trie[u][v];
ans += (1ll << i);
}
}
return ans;
}
};
void solve() {
int n, x, Xor{}; cin >> n >> x;
vector<int> v(n);
Trie t;
t.init();
t.update(0);
map<int, int> mp;
mp[0] = -1;
array<int, 3> ans{};
for (int i = 0; i < n; i++) {
cin >> v[i];
Xor ^= v[i];
if (!mp.count(v[i])) {
mp[v[i]] = i;
}
int tmp = t.update(v[i]);
if (Xor ^ tmp > ans[0] and Xor ^ tmp >= x) {
if (Xor ^ tmp == ans[0] and ans[2] > i - mp[tmp]) continue;
ans[0] = Xor ^ tmp;
ans[1] = mp[tmp] + 1;
ans[2] = i - mp[tmp] + 1;
}
}
cout << ans[1] + 1 << ' ' << ans[2] << '\n';
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t = 1;
// cin >> t;
for (int i = 1; i <= t; i++) {
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50IGxvbmcgbG9uZwpjb25zdCBpbnQgaW5mID0gMWUxNTsKaW50IE1BWCA9IDEwMDAwMDU7CmNvbnN0IGludCBOID0gMzE7CnN0cnVjdCBub2RlIHsKICAgIGludCBhZGpbMl17fTsKICAgIGludCAmb3BlcmF0b3JbXShpbnQgaSkgeyByZXR1cm4gYWRqW2ldOyB9Cn07CgpzdHJ1Y3QgVHJpZSB7CiAgICB2ZWN0b3I8bm9kZT4gdHJpZTsKCiAgICBpbnQgbmV3bm9kZSgpIHsKICAgICAgICB0cmllLmVtcGxhY2VfYmFjaygpOwogICAgICAgIHJldHVybiB0cmllLnNpemUoKSAtIDE7CiAgICB9CgogICAgdm9pZCBpbml0KCkgewogICAgICAgIG5ld25vZGUoKTsKICAgIH0KCiAgICBpbnQgdXBkYXRlKGludCB2YWwpIHsKICAgICAgICBpbnQgdSA9IDA7CiAgICAgICAgZm9yIChpbnQgaSA9IE4tMTsgfmk7IGktLSkgewogICAgICAgICAgICBpbnQgdiA9ICh2YWwgPj4gaSkgJiAxOwogICAgICAgICAgICBpZiAoIXRyaWVbdV1bdl0pIHsKICAgICAgICAgICAgICAgIHRyaWVbdV1bdl0gPSBuZXdub2RlKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdSA9IHRyaWVbdV1bdl07CiAgICAgICAgfQoKICAgICAgICB1ID0gMDsKICAgICAgICBpbnQgYW5ze307CiAgICAgICAgZm9yIChpbnQgaSA9IE4tMTsgfmk7IGktLSkgewogICAgICAgICAgICBpbnQgdiA9ICh2YWwgPj4gaSkmIDE7CiAgICAgICAgICAgIGlmICh0cmllW3VdWyF2XSkgewogICAgICAgICAgICAgICAgdSA9IHRyaWVbdV1bIXZdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgdSA9IHRyaWVbdV1bdl07CiAgICAgICAgICAgICAgICBhbnMgKz0gKDFsbCA8PCBpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gYW5zOwogICAgfQp9OwoKCnZvaWQgc29sdmUoKSB7CiAgICBpbnQgbiwgeCwgWG9ye307IGNpbiA+PiBuID4+IHg7CiAgICB2ZWN0b3I8aW50PiB2KG4pOwogICAgVHJpZSB0OwogICAgdC5pbml0KCk7CiAgICB0LnVwZGF0ZSgwKTsKICAgIG1hcDxpbnQsIGludD4gbXA7CiAgICBtcFswXSA9IC0xOwogICAgYXJyYXk8aW50LCAzPiBhbnN7fTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IHZbaV07CiAgICAgICAgWG9yIF49IHZbaV07CiAgICAgICAgaWYgKCFtcC5jb3VudCh2W2ldKSkgewogICAgICAgICAgICBtcFt2W2ldXSA9IGk7CiAgICAgICAgfQoKICAgICAgICBpbnQgdG1wID0gdC51cGRhdGUodltpXSk7CiAgICAgICAgaWYgKFhvciBeIHRtcCA+IGFuc1swXSBhbmQgWG9yIF4gdG1wID49IHgpIHsKICAgICAgICAgICAgaWYgKFhvciBeIHRtcCA9PSBhbnNbMF0gYW5kIGFuc1syXSA+IGkgLSBtcFt0bXBdKSBjb250aW51ZTsKICAgICAgICAgICAgYW5zWzBdID0gWG9yIF4gdG1wOwogICAgICAgICAgICBhbnNbMV0gPSBtcFt0bXBdICsgMTsKICAgICAgICAgICAgYW5zWzJdID0gaSAtIG1wW3RtcF0gKyAxOwogICAgICAgIH0KICAgIH0KCiAgICBjb3V0IDw8IGFuc1sxXSArIDEgPDwgJyAnIDw8IGFuc1syXSA8PCAnXG4nOwp9CgpzaWduZWQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IHQgPSAxOwogICAgLy8gY2luID4+IHQ7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSB0OyBpKyspIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQp9