#include <iostream>
#include<vector>
#include<algorithm>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef long long int ll;
vector<ll>vec;
int main(int argc, char** argv) {
ll n,i;
ll ele;
cin>>n;
for(i=0;i<n;i++)
{
cin>>ele;
vec.push_back(ele);
}
sort(vec.rbegin(),vec.rend());
ll row=0;
// find the msb of the largest number
ll msb=1,res=0;
while(msb<=vec[0])
msb<<=1;
msb>>=1;
for(ll row=0; msb>=1; msb>>=1)
{
ll temp=row;
while(temp<n && (vec[temp]&msb)==0)
temp++;
if(temp>=n)
continue;
swap(vec[row],vec[temp]);
for(ll j=0;j<n;j++)
{
if(j!=row && (vec[j]&msb)!=0)
vec[j]= vec[j]^vec[row];
cout<<vec[j]<<" ";
}
cout<<endl;
row++;
}
for(i=0;i<n;i++)
{
// uncomment here
// cout<<res<<" ";
res^=vec[i];
}
cout<<endl<<res<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTx2ZWN0b3I+CiNpbmNsdWRlPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8qIHJ1biB0aGlzIHByb2dyYW0gdXNpbmcgdGhlIGNvbnNvbGUgcGF1c2VyIG9yIGFkZCB5b3VyIG93biBnZXRjaCwgc3lzdGVtKCJwYXVzZSIpIG9yIGlucHV0IGxvb3AgKi8KCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKCnZlY3RvcjxsbD52ZWM7CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpIHsKCWxsIG4saTsKCWxsIGVsZTsKCWNpbj4+bjsKCWZvcihpPTA7aTxuO2krKykKCXsKCQljaW4+PmVsZTsKCQl2ZWMucHVzaF9iYWNrKGVsZSk7Cgl9CgkKCXNvcnQodmVjLnJiZWdpbigpLHZlYy5yZW5kKCkpOwoJCglsbCByb3c9MDsKCS8vIGZpbmQgdGhlIG1zYiBvZiB0aGUgbGFyZ2VzdCBudW1iZXIKCQoJbGwgbXNiPTEscmVzPTA7CgkKCXdoaWxlKG1zYjw9dmVjWzBdKQoJIG1zYjw8PTE7CgkKCW1zYj4+PTE7CgkKCWZvcihsbCByb3c9MDsgbXNiPj0xOyBtc2I+Pj0xKQoJewoJCWxsIHRlbXA9cm93OwoJCQoJCXdoaWxlKHRlbXA8biAmJiAodmVjW3RlbXBdJm1zYik9PTApCgkJIHRlbXArKzsKCQkgCgkJIGlmKHRlbXA+PW4pCgkJICBjb250aW51ZTsKCQkgIAoJCSAJc3dhcCh2ZWNbcm93XSx2ZWNbdGVtcF0pOwoJCSAJCgkJIAlmb3IobGwgaj0wO2o8bjtqKyspCgkJIAl7CgkJIAkJaWYoaiE9cm93ICYmICh2ZWNbal0mbXNiKSE9MCkKCQkgCQkgdmVjW2pdPSB2ZWNbal1edmVjW3Jvd107CgkJIAkJIAoJCSAJCSBjb3V0PDx2ZWNbal08PCIgIjsKCQkJfQoJCQljb3V0PDxlbmRsOwoJCSByb3crKzsKCX0KCQoJZm9yKGk9MDtpPG47aSsrKQoJewoJLy8JdW5jb21tZW50IGhlcmUKCS8vCWNvdXQ8PHJlczw8IiAiOwoJCXJlc149dmVjW2ldOwoJfQoJCgljb3V0PDxlbmRsPDxyZXM8PGVuZGw7CgkKCXJldHVybiAwOwp9Cg==