Дано целое число $n$. Найдите перестановку $p$ длины $n$ (с индексацией от $0$) чисел $0,1,\dots, n-1$, такую, что для каждого целого $i\in[0,n)$ выполняется $p_i\oplus i=p_i+i$.
Здесь $\oplus$ означает побитовое исключающее ИЛИ (XOR). Исключающее ИЛИ — это логическая операция в булевой алгебре, результат которой истинен только тогда, когда входные значения различаются (одно истинно, другое ложно). Другими словами, XOR возвращает истинное значение тогда и только тогда, когда два входных значения различны. Ниже приведена таблица истинности для XOR.
Побитовое XOR — это бинарная операция, которая применяется к двум битовым последовательностям одинаковой длины и выполняет логическое исключающее ИЛИ над каждой парой соответствующих битов. Например: $0101$ (десятичное $5$) $\oplus$ $0011$ (десятичное $3$) $= 0110$ (десятичное $6$).
Входные данные
Первая строка содержит целое число $n$ $(1\leq n\leq 10^6)$, обозначающее длину перестановки.
Выходные данные
Выведите $n$ целых чисел в одной строке, обозначающих $p_0, p_1,\dots,p_{n-1}$. Если такой перестановки не существует, вместо этого выведите $-1$.
Примеры
Входные данные 1
3
Выходные данные 1
0 2 1