Олимпиадный тренинг

Задача . C. Махмуд, Ехаб и xor


Задача

Темы: Конструктив *1900

Махмуд и Ехаб проходят третье испытание Доктора Зло. Как вы уже знаете, Доктор любит множества. На этот раз он не покажет Махмуду и Ехабу ни одного множества из его обширной коллекции, но попросит их сделать новое множество, чтобы её пополнить.

У Доктора Зло есть любимое злое число x. Он просит Махмуда и Ехаба найти множество из n различных неотрицательных целых чисел такое, что побитовый xor чисел в нём равен x. Доктор Зло не любит большие числа, поэтому он хочет, чтобы все числа в множестве были не больше, чем 106.

Входные данные

В единственной строке содержатся два целых числа n и x (1 ≤ n ≤ 105, 0 ≤ x ≤ 105) — число элементов в множестве и требуемый xor, соответственно.

Выходные данные

Если таких множеств не существует, выведите "NO" (без кавычек).

Иначе выведите на первой строке "YES" (без кавычек) а на второй строке n целых неотрицательных различных чисел — элементы множества в любом порядке.

Если решений несколько, выведите любое.

Примечание

Вы можете узнать больше об операции побитовый xor здесь: https://ru.wikipedia.org/wiki/Сложение_по_модулю_2

В первом тестовом примере . Во втором тестовом примере .


Примеры
Входные данныеВыходные данные
1 5 5
YES
1 2 4 5 7
2 3 6
YES
1 2 5

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя