C. Пингвин Поло и операция XOR
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

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

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

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

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

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

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

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

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

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