#include <bits/stdc++.h>
using namespace std;
long long br[21];
int main() {
  long long xorr = 0;
  long long n, x;
  cin >> n >> x;
  if (n == 1) {
    cout << "YES" << endl;
    cout << x << endl;
    return 0;
  }
  if (n == 2 && x == 0) {
    cout << "NO" << endl;
    return 0;
  }
  if (n == 2) {
    cout << "YES" << endl;
    cout << 0 << " " << x << endl;
    return 0;
  }
  cout << "YES" << endl;
  for (long long i = 0; i < n - 1; i++) {
    if (i == 0) {
      xorr ^= (i + (1ll << 19));
      cout << i + (1ll << 19) << " ";
    } else if (i < n - 2) {
      xorr ^= i;
      cout << i << " ";
    } else {
      cout << i + (1ll << 18) << " ";
      xorr ^= i + (1ll << 18);
    }
    for (long long j = 0; j <= 17; j++) {
      if ((1 << j) & i) br[j]++;
    }
  }
  long long last = 0;
  for (long long i = 0; i < 18; i++) {
    if (br[i] % 2 == 0 && ((1ll << i) & x)) {
      last += (1ll << i);
    } else if (br[i] % 2 == 1 && !((1ll << i) & x)) {
      last += (1ll << i);
    }
  }
  xorr ^= last + (1ll << 18) + (1ll << 19);
  cout << last + (1ll << 18) + (1ll << 19) << endl;
  return 0;
}
