#include <bits/stdc++.h>
using namespace std;
int n, x[1 << 22], y[100005 * 10], ta;
void go(int a) {
  if (x[a]) return;
  x[a] = ta;
  for (int b = (0); b < (22); b++)
    if (!(a & (1 << b))) go(a | (1 << b));
}
int main() {
  scanf("%d", &n);
  for (int a = (0); a < (n); a++) {
    scanf("%d", &ta);
    y[a] = ta ^ ((1 << 22) - 1);
    go(ta);
  }
  for (int a = (0); a < (n); a++) {
    ta = -1;
    if (x[y[a]]) ta = x[y[a]];
    printf("%d%c", ta, a == n - 1 ? '\n' : ' ');
  }
  return 0;
}
