#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const long long magicconst = 2000000000000000000;
long long gcd(long long a, long long b) {
  if (b > a) swap(a, b);
  while (a > 0 && b > 0) {
    a %= b;
    swap(a, b);
  }
  return a + b;
}
long long lcm(long long a, long long b) { return (a / gcd(a, b)) * b; }
int getrandomint(int max) {
  return (int)(((long long)rand() * (RAND_MAX + 1) + rand()) % max);
}
int main() {
  ios_base::sync_with_stdio(false);
  srand(505);
  int n, m;
  cin >> n >> m;
  if (n == 2 && m == 0) {
    cout << "NO";
    return 0;
  }
  cout << "YES" << endl;
  if (n == 1) {
    cout << m;
    return 0;
  }
  bool f = true;
  while (f) {
    set<int> answer;
    int x = 0;
    for (int i = 0; i < n - 1; i++) {
      bool tr = true;
      int temp;
      while (tr) {
        temp = getrandomint(399998) + 100001;
        if (answer.find(temp) == answer.end()) {
          tr = false;
        }
      }
      x ^= temp;
      answer.insert(temp);
    }
    int last = m ^ x;
    if (answer.find(last) == answer.end()) {
      cout << last << " ";
      for (int k : answer) {
        cout << k << " ";
      }
      return 0;
    }
  }
  return 0;
}
