#include<bits/stdc++.h>
using namespace std;
#ifndef ONLINE_JUDGE
#include "template.cpp"
#else
#define debug(...)
#define debugArr(a, n)
#endif
#define io ios_base::sync_with_stdio(false); cin.tie(NULL);
#define endl '\n'
void Wah() {
io;
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
// freopen("output.txt","w",stdout);
#endif
}
typedef vector<long long> vll;
typedef long double ld;
#define int long long
#define ll int
typedef pair<int,int> pii;
const int N = ( 1 << 24 );
pair<int,int> dp[N];
void senritsu() {
int n; cin >> n;
int a[n]; for ( int i = 0; i < n; i++ ) cin >> a[i];
for ( int i = 0; i < N; i++ ) dp[i] = {INT_MAX, INT_MIN};
for ( int i = 0; i < n; i++ ) dp[a[i]] = {i,i};
for ( int i = 0; i < 24; i++ ){
for ( int mask = 0; mask < N; mask++ ){
if ( (mask & (1<<i)) != 0 ){
dp[mask] = {
min(dp[mask].first, dp[mask^(1<<i)].first),
max(dp[mask].second, dp[mask^(1<<i)].second),
};
}
}
}
int mask = N - 1;
for ( int i = 0; i < n; i++ ){
int f, s;
int x = ( mask ^ a[i] );
f = dp[x].first;
s = dp[x].second;
if ( f != i && f >= 0 && f < n ){
cout << a[f] << ' ';
continue;
}
if ( s != i && s >= 0 && s < n ){
cout << a[s] << ' ';
continue;
}
cout << -1 << ' ';
}
}
signed main() {
// 君は分かってるかな 教えてくれた 戻らないその幸せは
Wah();
int tt = 1;
// cin >> tt;
int i = 1;
while ( tt-- > 0 ) {
// cout << "Case " << i++ << ": ";
senritsu();
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICAjaW5jbHVkZSAidGVtcGxhdGUuY3BwIgojZWxzZQogICAgI2RlZmluZSBkZWJ1ZyguLi4pCiAgICAjZGVmaW5lIGRlYnVnQXJyKGEsIG4pCiNlbmRpZgoKI2RlZmluZSBpbyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgCiNkZWZpbmUgZW5kbCAnXG4nCgp2b2lkIFdhaCgpIHsKICAgIGlvOwogICAgI2lmbmRlZiBPTkxJTkVfSlVER0UKICAgICAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICAvLyBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKICAgICNlbmRpZgp9Cgp0eXBlZGVmIHZlY3Rvcjxsb25nIGxvbmc+IHZsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKI2RlZmluZSBpbnQgbG9uZyBsb25nCiNkZWZpbmUgbGwgaW50CnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7CgoKCgoKY29uc3QgaW50IE4gPSAoIDEgPDwgMjQgKTsKcGFpcjxpbnQsaW50PiBkcFtOXTsKdm9pZCBzZW5yaXRzdSgpIHsgICAKICAgIAogICAgaW50IG47IGNpbiA+PiBuOwogICAgaW50IGFbbl07IGZvciAoIGludCBpID0gMDsgaSA8IG47IGkrKyApIGNpbiA+PiBhW2ldOwoKICAgIGZvciAoIGludCBpID0gMDsgaSA8IE47IGkrKyApIGRwW2ldID0ge0lOVF9NQVgsIElOVF9NSU59OwogICAgZm9yICggaW50IGkgPSAwOyBpIDwgbjsgaSsrICkgZHBbYVtpXV0gPSB7aSxpfTsgCiAKICAgIGZvciAoIGludCBpID0gMDsgaSA8IDI0OyBpKysgKXsKICAgICAgICBmb3IgKCBpbnQgbWFzayA9IDA7IG1hc2sgPCBOOyBtYXNrKysgKXsKICAgICAgICAgICAgaWYgKCAobWFzayAmICgxPDxpKSkgIT0gMCApewogICAgICAgICAgICAgICAgZHBbbWFza10gPSB7CiAgICAgICAgICAgICAgICAgICAgbWluKGRwW21hc2tdLmZpcnN0LCBkcFttYXNrXigxPDxpKV0uZmlyc3QpLAogICAgICAgICAgICAgICAgICAgIG1heChkcFttYXNrXS5zZWNvbmQsIGRwW21hc2teKDE8PGkpXS5zZWNvbmQpLAogICAgICAgICAgICAgICAgfTsKICAgICAgICAgICAgfSAKICAgICAgICB9CiAgICB9CgogICAgaW50IG1hc2sgPSBOIC0gMTsKICAgIGZvciAoIGludCBpID0gMDsgaSA8IG47IGkrKyApewoKICAgICAgICBpbnQgZiwgczsKICAgICAgICBpbnQgeCA9ICggbWFzayBeIGFbaV0gKTsKCiAgICAgICAgZiA9IGRwW3hdLmZpcnN0OwogICAgICAgIHMgPSBkcFt4XS5zZWNvbmQ7CgogICAgICAgIGlmICggZiAhPSBpICYmIGYgPj0gMCAmJiBmIDwgbiApewogICAgICAgICAgICBjb3V0IDw8IGFbZl0gPDwgJyAnOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYgKCBzICE9IGkgJiYgcyA+PSAwICYmIHMgPCBuICl7CiAgICAgICAgICAgIGNvdXQgPDwgYVtzXSA8PCAnICc7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KCiAgICAgICAgY291dCA8PCAtMSA8PCAnICc7CgogICAgfQoKfQoKc2lnbmVkIG1haW4oKSB7CiAgICAvLyDlkJvjga/liIbjgYvjgaPjgabjgovjgYvjgaog5pWZ44GI44Gm44GP44KM44GfIOaIu+OCieOBquOBhOOBneOBruW5uOOBm+OBrwogICAgV2FoKCk7CiAgICBpbnQgdHQgPSAxOwogICAgLy8gY2luID4+IHR0OwogICAgaW50IGkgPSAxOwogICAgd2hpbGUgKCB0dC0tID4gMCApIHsKICAgICAgICAvLyBjb3V0IDw8ICJDYXNlICIgPDwgaSsrIDw8ICI6ICI7CiAgICAgICAgc2Vucml0c3UoKTsKICAgIH0KICAgIHJldHVybiAwOwp9