Problem B: 青蛙跳环

Time Limit: 1 Sec Memory Limit: 128 MB

Description

       青蛙小 Y 生活在一个有 N 颗石子围成的环上,石子从 0 到 N-1 编号,第 i 颗石子的左右两边分别是第 i-1 和第 i+1 颗石子(0<i<n-1),第 n-1 颗石子和第 0 课石子相邻。
       有一天小 Y 心血来潮,他准备从第 0 颗石子上开始跳跃,并且经过每颗石子 1 次,最后回到第 0 颗石子上。他跳跃的规则很简单,如果小 Y 现在处于第 i 颗石子上,则他下一步可以跳到第(i*2)%N 或者第(i*2+1)%N 颗石子上。现在问题来了,小 Y 不知道要怎样选择路径才能从 0 开始,并且经过其他的石子各一次之后回到 0,你能帮他寻找出来吗?


Input

只有一行,一个整数 N。

Output

如果小 Y 可以完成跳跃,输出一行 N+1 个数,按顺序表示小 Y 跳过的石子编号,如果存在多解,输出字典序最大的那一组。
如果不存在一条这样的路径,输出-1。


Sample Input

样例输入1:2 
样例输入2:3 
样例输入3:4

Sample Output

样例输出1:0 1 0 
样例输出2:-1 
样例输出3:0 1 3 2 0

HINT

对于 10%的数据,N<=10。
对于 30%的数据,N<=50。
对于 100%的数据,2<=N<=10000。