#include <bits/stdc++.h>
using namespace std;
int a[4000100], f[4444444];
int main() {
  int n, i, j;
  scanf("%d", &n);
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  for (i = 0; i < n; i++) f[a[i]] = a[i];
  int maxi = (1 << 22) - 1;
  for (i = 0; i < 22; i++) {
    for (j = 0; j < maxi; j++) {
      if ((j & (1 << i)) && f[j ^ (1 << i)]) f[j] = f[j ^ (1 << i)];
    }
  }
  for (i = 0; i < n; i++) {
    if (f[maxi ^ a[i]])
      cout << f[maxi ^ a[i]] << " ";
    else
      cout << "-1 ";
  }
}
