#include <bits/stdc++.h>
using namespace std;
template <class c>
struct rge {
  c b, e;
};
template <class c>
rge<c> range(c i, c j) {
  return rge<c>{i, j};
}
template <class c>
auto dud(c* x) -> decltype(cerr << *x, 0);
template <class c>
char dud(...);
struct debug {
  template <class c>
  debug& operator<<(const c&) {
    return *this;
  }
};
int cnt[35];
bool comp(int a, int b) {
  int pos1 = -1, pos2 = -1;
  for (int i = 0; i < 31; i++) {
    if ((1 << i) & a) {
      if (cnt[i] == 1) pos1 = i;
    }
    if ((1 << i) & b) {
      if (cnt[i] == 1) {
        pos2 = i;
      }
    }
  }
  if (pos1 > pos2) {
    return true;
  }
  return false;
}
void tcase(int Tcase) {
  int n, a[100005];
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &a[i]);
    for (int j = 0; j < 31; j++) {
      if ((1 << j) & a[i]) {
        cnt[j]++;
      }
    }
  }
  sort(a, a + n, comp);
  for (int i = 0; i < n; i++) printf("%d ", a[i]);
}
int main() {
  int T = 1;
  for (int Tcase = 1; Tcase <= T; Tcase++) {
    tcase(Tcase);
  }
}
