#include <bits/stdc++.h>
using namespace std;
int dp[(1 << 22)], a[1000000];
int main() {
  int N;
  while (scanf("%d", &N) != EOF) {
    memset(dp, -1, sizeof(dp));
    for (int i = int(0); i < int(N); i++) {
      scanf("%d", a + i);
      dp[a[i]] = a[i];
    }
    for (int i = int(0); i < int(22); i++) {
      for (int j = int(0); j < int((1 << 22)); j++) {
        if (~dp[j]) dp[j | 1 << i] = dp[j];
      }
    }
    for (int i = int(0); i < int(N); i++) {
      printf("%d%c", dp[~a[i] & (1 << 22) - 1], " \n"[i == N - 1]);
    }
  }
  return 0;
}
