#include <bits/stdc++.h>
using namespace std;
int cnt[(1 << 20) * 10];
int ans[(1 << 20) * 10];
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    int n, i;
    cin >> n;
    int arr[n];
    memset(ans, -1, sizeof(ans));
    memset(cnt, 0, sizeof(cnt));
    for (i = 0; i < n; i++) {
      cin >> arr[i];
      cnt[arr[i]]++;
    }
    int j;
    for (i = 0; i < (1 << 22); i++) {
      if (cnt[i]) ans[i] = i;
    }
    for (i = 0; i < 22; i++) {
      for (j = 0; j < (1 << 22); j++) {
        if (j & (1 << i)) {
          if (ans[j ^ (1 << i)] != -1)
            ans[j] = ans[(j ^ (1 << i))];
          else if (cnt[j ^ (1 << i)])
            ans[j] = j ^ (1 << i);
        }
      }
    }
    for (i = 0; i < n; i++) {
      cout << ans[(((1 << 22) - 1) ^ arr[i])] << " ";
    }
  }
  return 0;
}
