Little penguin Polo likes permutations. But most of all he likes permutations of integers from 0 to *n*, inclusive.

For permutation *p* = *p*<sub class="lower-index">0</sub>, *p*<sub class="lower-index">1</sub>, ..., *p*<sub class="lower-index">*n*</sub>, Polo has defined its beauty — number <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/0c51fe5d835015fdb8b8dbb056e9a83c439c83dc.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

Expression <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/b364f2e04c665b78b924ec10666327a4ef4635bc.png" style="max-width: 100.0%;max-height: 100.0%;"/> means applying the operation of bitwise excluding "OR" to numbers *x* and *y*. This operation exists in all modern programming languages, for example, in language C++ and Java it is represented as "^" and in Pascal — as "xor".

Help him find among all permutations of integers from 0 to *n* the permutation with the maximum beauty.
The single line contains a positive integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>).
from sys import stdin,stdout
nmbr = lambda: int(stdin.readline())
lst = lambda: list(map(int,stdin.readline().split()))
for _ in range(1):#nmbr()):
    n=nmbr()
    ans=[i for i in range(n+1)]
    for i in range(1,n,2):
        ans[i],ans[i+1]=ans[i+1],ans[i]
    if n&1:ans[0],ans[-1]=ans[-1],ans[0]
    x=0
    for i in range(n+1):
        x+=(i^ans[i])
    print(x)
    print(*ans)