#include <bits/stdc++.h>
using namespace std;
#define Long long long
#define bint __int128
#define _3bkarm cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false);
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define getrand(l, r) uniform_int_distribution<long long>(l, r)(rng)
bool go(int at, int l, int r, int cl, int cr, vector<int> a) {
if (at == a.size()) return false;
if (cl == cr and l == r and cl > 0) return true;
return go(at + 1, l, r, cl, cr, a)
or go(at + 1, (l ^ a[at]), r, cl + 1, cr, a)
or go(at + 1, l, (r ^ a[at]), cl, cr + 1, a);
}
bool brute(int n, vector<int> a) {
return go(0, 0, 0, 0, 0, a);
}
bool solve(int n, vector<int> a) {
int l = 0, r = 0;
sort( a.begin(), a.end() );
for (int i = 0; i + 1 < n; i += 2) {
l = (l ^ a[i]);
r = (r ^ a[i + 1]);
if (l == r) {
return true;
}
}
return false;
}
void get_shit_done() {
}
signed main() {
_3bkarm
int it = 1000;
while (it--) {
int n = 5;
vector<int> a(n);
set<int> st;
for (int i = 0; i < n; ++i) {
while (true) {
a[i] = getrand(1, 10);
if ( st.count(a[i]) == 0 ) {
st.insert(a[i]);
break;
}
}
}
// for (int i = 0; i < n; ++i) {
// cin >> a[i];
// }
bool x = solve(n, a);
bool y = brute(n, a);
if (x != y) {
cout << (int)x << ' ' << (int)y << '\n';
for (int t : a) cout << t << ' ';
return 0;
}
}
// int ts = 1;
// cin >> ts;
// while (ts--) {
// get_shit_done();
// }
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBMb25nIGxvbmcgbG9uZwojZGVmaW5lIGJpbnQgX19pbnQxMjgKI2RlZmluZSBfM2JrYXJtIGNpbi50aWUoTlVMTCk7IGNvdXQudGllKE5VTEwpOyBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgptdDE5OTM3IHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwojZGVmaW5lIGdldHJhbmQobCwgcikgdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxvbmcgbG9uZz4obCwgcikocm5nKQoKYm9vbCBnbyhpbnQgYXQsIGludCBsLCBpbnQgciwgaW50IGNsLCBpbnQgY3IsIHZlY3RvcjxpbnQ+IGEpIHsKICAgIGlmIChhdCA9PSBhLnNpemUoKSkgcmV0dXJuIGZhbHNlOwogICAgaWYgKGNsID09IGNyIGFuZCBsID09IHIgYW5kIGNsID4gMCkgcmV0dXJuIHRydWU7CiAgICByZXR1cm4gZ28oYXQgKyAxLCBsLCByLCBjbCwgY3IsIGEpCiAgICBvciBnbyhhdCArIDEsIChsIF4gYVthdF0pLCByLCBjbCArIDEsIGNyLCBhKQogICAgb3IgZ28oYXQgKyAxLCBsLCAociBeIGFbYXRdKSwgY2wsIGNyICsgMSwgYSk7Cn0KCmJvb2wgYnJ1dGUoaW50IG4sIHZlY3RvcjxpbnQ+IGEpIHsKICAgIHJldHVybiBnbygwLCAwLCAwLCAwLCAwLCBhKTsKfQoKYm9vbCBzb2x2ZShpbnQgbiwgdmVjdG9yPGludD4gYSkgewogICAgaW50IGwgPSAwLCByID0gMDsKICAgIHNvcnQoIGEuYmVnaW4oKSwgYS5lbmQoKSApOwogICAgZm9yIChpbnQgaSA9IDA7IGkgKyAxIDwgbjsgaSArPSAyKSB7CiAgICAgICAgbCA9IChsIF4gYVtpXSk7CiAgICAgICAgciA9IChyIF4gYVtpICsgMV0pOwogICAgICAgIGlmIChsID09IHIpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIGZhbHNlOwp9Cgp2b2lkIGdldF9zaGl0X2RvbmUoKSB7Cgp9CgpzaWduZWQgbWFpbigpIHsKICAgIF8zYmthcm0KCiAgICBpbnQgaXQgPSAxMDAwOwogICAgd2hpbGUgKGl0LS0pIHsKICAgICAgICBpbnQgbiA9IDU7CiAgICAgICAgdmVjdG9yPGludD4gYShuKTsKICAgICAgICBzZXQ8aW50PiBzdDsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgYVtpXSA9IGdldHJhbmQoMSwgMTApOwogICAgICAgICAgICAgICAgaWYgKCBzdC5jb3VudChhW2ldKSA9PSAwICkgewogICAgICAgICAgICAgICAgICAgIHN0Lmluc2VydChhW2ldKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCi8vICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewovLyAgICAgICAgICAgIGNpbiA+PiBhW2ldOwovLyAgICAgICAgfQogICAgICAgIGJvb2wgeCA9IHNvbHZlKG4sIGEpOwogICAgICAgIGJvb2wgeSA9IGJydXRlKG4sIGEpOwogICAgICAgIGlmICh4ICE9IHkpIHsKICAgICAgICAgICAgY291dCA8PCAoaW50KXggPDwgJyAnIDw8IChpbnQpeSA8PCAnXG4nOwogICAgICAgICAgICBmb3IgKGludCB0IDogYSkgY291dCA8PCB0IDw8ICcgJzsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgfQoKLy8gICAgaW50IHRzID0gMTsKLy8gICAgY2luID4+IHRzOwovLyAgICB3aGlsZSAodHMtLSkgewovLyAgICAgICAgZ2V0X3NoaXRfZG9uZSgpOwovLyAgICB9CgogICAgcmV0dXJuIDA7Cn0=