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

Задача . C. Пингвин Поло и операция XOR


Пингвин Поло очень любит перестановки. Но больше всего он любит перестановки целых чисел от 0 до n, включительно.

Для перестановки p = p0, p1, ..., pn Поло определил ее красоту — число .

Выражение обозначает применение операции побитового исключающего «ИЛИ» к числам x и y. Данная операция есть во всех современных языках программирования, например, в языке C++ и Java она обозначается символом «^», в Pascal — «xor».

Помогите ему найти среди всех перестановок целых чисел от 0 до n перестановку с максимальной красотой.

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

В единственной строке задано целое положительное число n (1 ≤ n ≤ 106).

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

В первой строке выведите целое число m — максимально возможную красоту, в следующей строке выведите любую перестановку целых чисел от 0 до n, красота которой равна m.

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


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

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

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