#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:1024000000,1024000000")
using namespace std;
const double PI = acos(-1);
const int inf = 0x3f3f3f3f;
const double esp = 1e-6;
const int maxn = 1e5 + 5;
const int mod = 1e9 + 7;
int dir[4][2] = {0, 1, 1, 0, 0, -1, -1, 0};
int ans[maxn];
int main() {
  int i, j, k, n;
  while (cin >> n >> k) {
    if (n == 1) {
      cout << "YES" << endl;
      cout << k << endl;
      continue;
    }
    if (n == 2 && !k) {
      cout << "NO" << endl;
      continue;
    }
    ans[n - 1] = k;
    for (i = 0; i < n - 1; i++) {
      ans[i] = i;
      ans[n - 1] ^= i;
    }
    if (ans[n - 1] < n - 1) {
      if (ans[n - 1] != ans[n - 2])
        ans[n - 2] ^= (1 << 18);
      else
        ans[n - 3] ^= (1 << 18);
      ans[n - 1] ^= (1 << 18);
    }
    cout << "YES" << endl;
    for (i = 0; i < n; i++) cout << ans[i] << ' ';
    cout << endl;
  }
  return 0;
}
