#include<bitset>
#include<iostream>
#include <stack>
#include<algorithm>
#include<map>
#include<unordered_map>
#include<unordered_set>
#include<vector>
#include<set>
#include<queue>
#include<cstdio>
#include<random>
#include<math.h>
#include<numeric>
#include<string>
#include<fstream>
#include<iomanip>
#include <immintrin.h>
#include <chrono>
#define pq priority_queue
#define qu queue
#define ll long long
#define Sroor_1000 ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
using namespace std;
const int MOD = 1e9 + 7;
void solve() {
ll count =0,a=0;
int n,k; cin >> n;
vector<int>Vnum(n),ans(513);
ans[0] = 1;
vector<pair<int, int>>Dp(n, { 1,0 });
for (int i = 0; i < n; i++) {
cin >> Vnum[i];
ans[Vnum[i]]++;
Dp[i].second = Vnum[i];
}
for (int i = 1; i < n; i++) {
for (int j = 0; j < i; j++) {
if (Vnum[i] > Vnum[j]) {
if (Dp[i].first < Dp[j].first + 1) {
Dp[i].first = Dp[j].first + 1;
Dp[i].second = Dp[j].second ^ Vnum[i];
ans[Dp[i].second] = 1;
}
}
}
}
for (int i = 0; i < 513; i++)if (ans[i])cout << i << " ";
}
int main() {
Sroor_1000
// FILE* IN; freopen_s(&IN,"stdin", "r", stdin);
//FILE* out;freopen_s(&out, "output.txt", "w", stdout);
int t; t = 1;
// cin >> t;
while (t--)solve();
}
CiNpbmNsdWRlPGJpdHNldD4KI2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdGFjaz4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZTxtYXA+CiNpbmNsdWRlPHVub3JkZXJlZF9tYXA+CiNpbmNsdWRlPHVub3JkZXJlZF9zZXQ+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8c2V0PgojaW5jbHVkZTxxdWV1ZT4KI2luY2x1ZGU8Y3N0ZGlvPgojaW5jbHVkZTxyYW5kb20+CiNpbmNsdWRlPG1hdGguaD4KI2luY2x1ZGU8bnVtZXJpYz4KI2luY2x1ZGU8c3RyaW5nPgojaW5jbHVkZTxmc3RyZWFtPgojaW5jbHVkZTxpb21hbmlwPgojaW5jbHVkZSA8aW1taW50cmluLmg+IAojaW5jbHVkZSA8Y2hyb25vPiAKI2RlZmluZSBwcSBwcmlvcml0eV9xdWV1ZQojZGVmaW5lIHF1IHF1ZXVlCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgU3Jvb3JfMTAwMCAJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyBjaW4udGllKE5VTEwpOyBjb3V0LnRpZShOVUxMKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY29uc3QgaW50IE1PRCA9IDFlOSArIDc7CgoKdm9pZCBzb2x2ZSgpIHsKICAgIGxsIGNvdW50ID0wLGE9MDsKICAgIGludCBuLGs7IGNpbiA+PiBuOwogICAgdmVjdG9yPGludD5WbnVtKG4pLGFucyg1MTMpOwogICAgYW5zWzBdID0gMTsKICAgIHZlY3RvcjxwYWlyPGludCwgaW50Pj5EcChuLCB7IDEsMCB9KTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKSB7CiAgICAgICAgY2luID4+IFZudW1baV07CiAgICAgICAgYW5zW1ZudW1baV1dKys7CiAgICAgICAgRHBbaV0uc2Vjb25kID0gVm51bVtpXTsKICAgICAgICB9CiAgICBmb3IgKGludCBpID0gMTsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CiAgICAgICAgICAgIGlmIChWbnVtW2ldID4gVm51bVtqXSkgewogICAgICAgICAgICAgICAgaWYgKERwW2ldLmZpcnN0IDwgRHBbal0uZmlyc3QgKyAxKSB7CiAgICAgICAgICAgICAgICAgICAgRHBbaV0uZmlyc3QgPSBEcFtqXS5maXJzdCArIDE7IAogICAgICAgICAgICAgICAgICAgIERwW2ldLnNlY29uZCA9IERwW2pdLnNlY29uZCBeIFZudW1baV07IAogICAgICAgICAgICAgICAgICAgIGFuc1tEcFtpXS5zZWNvbmRdID0gMTsgCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDUxMzsgaSsrKWlmIChhbnNbaV0pY291dCA8PCBpIDw8ICIgIjsKfQoKCgoKaW50IG1haW4oKSB7CgogICAgU3Jvb3JfMTAwMAoKICAgICAgIC8vIEZJTEUqIElOOyBmcmVvcGVuX3MoJklOLCJzdGRpbiIsICJyIiwgc3RkaW4pOwogICAgLy9GSUxFKiBvdXQ7ZnJlb3Blbl9zKCZvdXQsICJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgICAgIGludCB0OyAgdCA9IDE7CiAvLyBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pc29sdmUoKTsKCgoKfQ==