#include <bits/stdc++.h>
using namespace std;
vector<long long> v[70];
int n;
long long ans[100010], cur = 0;
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    long long x;
    cin >> x;
    for (int j = 60; j >= 0; j--)
      if ((x >> j) & 1) {
        v[j].push_back(x);
        break;
      }
  }
  for (int i = 1; i <= n; i++) {
    bool flag = 0;
    for (int j = 0; j <= 60; j++)
      if (!(cur & (1ll << j)) && !v[j].empty()) {
        cur ^= (ans[i] = v[j].back());
        v[j].pop_back();
        flag = 1;
        break;
      }
    if (!flag) {
      cout << "No" << endl;
      return 0;
    }
  }
  cout << "Yes" << endl;
  for (int i = 1; i <= n; i++) cout << ans[i] << ' ';
  cout << endl;
  return 0;
}
