#include <bits/stdc++.h>
using namespace std;
#define ll long long int
#define pii pair<int, int>
#define REP(i, a, b) for (int i = a; i <= b; i++)
#define RREP(i, a, b) for (int i = a; i >= b; i--)
#define endl "\n"
#define all(x) (x).begin(), (x).end()
#define pi 3.141592653589793238
#define maxN 200001
#define INF 1000000000
#define mod 1000000007
#define printd(x) cout << fixed << setprecision(10) << x
// int dx[] = {-2, -1, 1, 2, 2, 1, -1, -2};
// int dy[] = {1, 2, 2, 1, -1, -2, -2, -1};
// int dx[] = {-1, 0, 1, 0, 1, -1, 1, -1};
// int dy[] = {0, -1, 0, 1, -1, -1, 1, 1};
const int sz = 2;
class TrieBit
{
struct Node
{
Node *arr[sz];
int cnt;
Node()
{
REP(i, 0, sz - 1)
arr[i] = NULL;
cnt = 0;
}
};
Node *root;
public:
TrieBit()
{
root = new Node();
}
void insert(ll s)
{
Node *temp = root;
RREP(i, 63, 0)
{
if (s & (1LL << i))
{
if (temp->arr[1] == NULL)
temp->arr[1] = new Node();
temp = temp->arr[1];
}
else
{
if (temp->arr[0] == NULL)
temp->arr[0] = new Node();
temp = temp->arr[0];
}
temp->cnt++;
}
}
bool search(ll s)
{
Node *temp = root;
RREP(i, 63, 0)
{
if (s & (1LL << i))
{
if (temp->arr[1] == NULL || temp->arr[1]->cnt == 0)
return false;
temp = temp->arr[1];
}
else
{
if (temp->arr[0] == NULL || temp->arr[0]->cnt == 0)
return false;
temp = temp->arr[0];
}
}
return true;
}
void del(ll s)
{
if (search(s) == false)
return;
Node *temp = root;
RREP(i, 63, 0)
{
if (s & (1LL << i))
{
temp = temp->arr[1];
}
else
{
temp = temp->arr[0];
}
temp->cnt--;
}
}
ll calc(ll s)
{
Node *temp = root;
ll ans = 0;
RREP(i, 63, 0)
{
if (s & (1LL << i))
{
if (temp->arr[0] && temp->arr[0]->cnt)
{
ans |= (1LL << i);
temp = temp->arr[0];
}
else
{
temp = temp->arr[1];
}
}
else
{
if (temp->arr[1] && temp->arr[1]->cnt)
{
ans |= (1LL << i);
temp = temp->arr[1];
}
else
{
temp = temp->arr[0];
}
}
}
return ans;
}
};
int n;
ll x;
ll arr[maxN];
void solve()
{
cin >> n >> x;
REP(i, 1, n)
cin >> arr[i];
TrieBit trie;
ll ans = (x ^ arr[1]);
ll xo = arr[1];
trie.insert(arr[1]);
REP(i, 2, n)
{
xo = (arr[i] ^ xo);
ans = max(ans, (xo ^ x));
trie.insert(xo);
ans = max(ans, trie.calc(x ^ xo));
}
cout << (ans ^ x) << endl;
}
int main(int argc, char const *argv[])
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
// freopen("input.txt","r",stdin);
// freopen("output.txt","w",stdout);
int t = 1;
cin >> t;
REP(tc, 1, t)
{
// cout<<"Case "<<tc<<":"<<endl;
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIHBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIFJFUChpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyBpKyspCiNkZWZpbmUgUlJFUChpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+PSBiOyBpLS0pCiNkZWZpbmUgZW5kbCAiXG4iCiNkZWZpbmUgYWxsKHgpICh4KS5iZWdpbigpLCAoeCkuZW5kKCkKI2RlZmluZSBwaSAzLjE0MTU5MjY1MzU4OTc5MzIzOAoKI2RlZmluZSBtYXhOIDIwMDAwMQojZGVmaW5lIElORiAxMDAwMDAwMDAwCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBwcmludGQoeCkgY291dCA8PCBmaXhlZCA8PCBzZXRwcmVjaXNpb24oMTApIDw8IHgKLy8gaW50IGR4W10gPSB7LTIsIC0xLCAxLCAyLCAyLCAxLCAtMSwgLTJ9OwovLyBpbnQgZHlbXSA9IHsxLCAyLCAyLCAxLCAtMSwgLTIsIC0yLCAtMX07Ci8vIGludCBkeFtdID0gey0xLCAwLCAxLCAwLCAxLCAtMSwgMSwgLTF9OwovLyBpbnQgZHlbXSA9IHswLCAtMSwgMCwgMSwgLTEsIC0xLCAxLCAxfTsKCmNvbnN0IGludCBzeiA9IDI7CgpjbGFzcyBUcmllQml0CnsKICAgIHN0cnVjdCBOb2RlCiAgICB7CiAgICAgICAgTm9kZSAqYXJyW3N6XTsKICAgICAgICBpbnQgY250OwoKICAgICAgICBOb2RlKCkKICAgICAgICB7CiAgICAgICAgICAgIFJFUChpLCAwLCBzeiAtIDEpCiAgICAgICAgICAgIGFycltpXSA9IE5VTEw7CiAgICAgICAgICAgIGNudCA9IDA7CiAgICAgICAgfQogICAgfTsKCiAgICBOb2RlICpyb290OwoKcHVibGljOgogICAgVHJpZUJpdCgpCiAgICB7CiAgICAgICAgcm9vdCA9IG5ldyBOb2RlKCk7CiAgICB9CgogICAgdm9pZCBpbnNlcnQobGwgcykKICAgIHsKICAgICAgICBOb2RlICp0ZW1wID0gcm9vdDsKCiAgICAgICAgUlJFUChpLCA2MywgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzICYgKDFMTCA8PCBpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHRlbXAtPmFyclsxXSA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgIHRlbXAtPmFyclsxXSA9IG5ldyBOb2RlKCk7CiAgICAgICAgICAgICAgICB0ZW1wID0gdGVtcC0+YXJyWzFdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHRlbXAtPmFyclswXSA9PSBOVUxMKQogICAgICAgICAgICAgICAgICAgIHRlbXAtPmFyclswXSA9IG5ldyBOb2RlKCk7CiAgICAgICAgICAgICAgICB0ZW1wID0gdGVtcC0+YXJyWzBdOwogICAgICAgICAgICB9CgogICAgICAgICAgICB0ZW1wLT5jbnQrKzsKICAgICAgICB9CiAgICB9CgogICAgYm9vbCBzZWFyY2gobGwgcykKICAgIHsKICAgICAgICBOb2RlICp0ZW1wID0gcm9vdDsKCiAgICAgICAgUlJFUChpLCA2MywgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzICYgKDFMTCA8PCBpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHRlbXAtPmFyclsxXSA9PSBOVUxMIHx8IHRlbXAtPmFyclsxXS0+Y250ID09IDApCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAtPmFyclsxXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICh0ZW1wLT5hcnJbMF0gPT0gTlVMTCB8fCB0ZW1wLT5hcnJbMF0tPmNudCA9PSAwKQogICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgIHRlbXAgPSB0ZW1wLT5hcnJbMF07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIHZvaWQgZGVsKGxsIHMpCiAgICB7CiAgICAgICAgaWYgKHNlYXJjaChzKSA9PSBmYWxzZSkKICAgICAgICAgICAgcmV0dXJuOwoKICAgICAgICBOb2RlICp0ZW1wID0gcm9vdDsKCiAgICAgICAgUlJFUChpLCA2MywgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzICYgKDFMTCA8PCBpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAtPmFyclsxXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHRlbXAgPSB0ZW1wLT5hcnJbMF07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRlbXAtPmNudC0tOwogICAgICAgIH0KICAgIH0KCiAgICBsbCBjYWxjKGxsIHMpCiAgICB7CiAgICAgICAgTm9kZSAqdGVtcCA9IHJvb3Q7CiAgICAgICAgbGwgYW5zID0gMDsKCiAgICAgICAgUlJFUChpLCA2MywgMCkKICAgICAgICB7CiAgICAgICAgICAgIGlmIChzICYgKDFMTCA8PCBpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYgKHRlbXAtPmFyclswXSAmJiB0ZW1wLT5hcnJbMF0tPmNudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBhbnMgfD0gKDFMTCA8PCBpKTsKICAgICAgICAgICAgICAgICAgICB0ZW1wID0gdGVtcC0+YXJyWzBdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHRlbXAgPSB0ZW1wLT5hcnJbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAodGVtcC0+YXJyWzFdICYmIHRlbXAtPmFyclsxXS0+Y250KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGFucyB8PSAoMUxMIDw8IGkpOwogICAgICAgICAgICAgICAgICAgIHRlbXAgPSB0ZW1wLT5hcnJbMV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAtPmFyclswXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFuczsKICAgIH0KfTsKCmludCBuOwpsbCB4OwpsbCBhcnJbbWF4Tl07Cgp2b2lkIHNvbHZlKCkKewogICAgY2luID4+IG4gPj4geDsKCiAgICBSRVAoaSwgMSwgbikKICAgIGNpbiA+PiBhcnJbaV07CgogICAgVHJpZUJpdCB0cmllOwoKICAgIGxsIGFucyA9ICh4IF4gYXJyWzFdKTsKICAgIGxsIHhvID0gYXJyWzFdOwogICAgdHJpZS5pbnNlcnQoYXJyWzFdKTsKCiAgICBSRVAoaSwgMiwgbikKICAgIHsKICAgICAgICB4byA9IChhcnJbaV0gXiB4byk7CiAgICAgICAgYW5zID0gbWF4KGFucywgKHhvIF4geCkpOwogICAgICAgIHRyaWUuaW5zZXJ0KHhvKTsKICAgICAgICBhbnMgPSBtYXgoYW5zLCB0cmllLmNhbGMoeCBeIHhvKSk7CiAgICB9CgogICAgY291dCA8PCAoYW5zIF4geCkgPDwgZW5kbDsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwogICAgY291dC50aWUoTlVMTCk7CgogICAgLy8gZnJlb3BlbigiaW5wdXQudHh0IiwiciIsc3RkaW4pOwogICAgLy8gZnJlb3Blbigib3V0cHV0LnR4dCIsInciLHN0ZG91dCk7CgogICAgaW50IHQgPSAxOwoKICAgIGNpbiA+PiB0OwoKICAgIFJFUCh0YywgMSwgdCkKICAgIHsKICAgICAgICAvLyBjb3V0PDwiQ2FzZSAiPDx0Yzw8IjoiPDxlbmRsOwogICAgICAgIHNvbHZlKCk7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0=