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

Задача . D. Ихаб и обычная задача на исключающее ИЛИ


Даны два числа \(n\) и \(x\), найдите массив, который удовлетворяет следующим условиям:

  • для любого числа \(a_i\) в массиве выполняется \(1 \le a_i<2^n\),
  • нет такого непустого подотрезка, на котором побитовое исключающее ИЛИ равно \(0\) или \(x\),
  • длина массива \(l\) должна быть максимальна.

Последовательность \(b\) является подотрезком \(a\), если \(b\) может быть получена из \(a\) удалением нескольких (возможно, ни одного или всех) элементов из начала и нескольких (возможно, ни одного или всех) элементов из конца.

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

Первая строка содержит два целых числа \(n\) и \(x\) (\(1 \le n \le 18\), \(1 \le x<2^{18}\)).

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

В первую строку выведите максимальную длину массива \(l\).

Если \(l\) положительное, во вторую строку выведите \(l\) целых чисел \(a_1\), \(a_2\), \(\dots\), \(a_l\) (\(1 \le a_i < 2^n\)) — числа массива \(a\).

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

Примечание

В первом примере побитовые исключающие ИЛИ на подмассивах равны \(\{6,7,4,1,2,3\}\).


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

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

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