1889 掉球路径


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 32M

Problem types
Allowed languages
C, C++, Java, Python

Description

如图展示了一颗倒树结构的游戏装置,其深度为3,即从顶端(根部)到底部(树叶)所经历的结点数。将结点从上到下、从左到右依序编号,则得到1,2,3,4,5,6,7的结点。显然处于同一水平的结点(例如结点2和3处同一水平),其深度都是相同的。若树结构深度为d,则其结点编号将为1,2,3,…,2^d-1。

圣诞节期间,chen_h和他的小伙伴们去儿童乐园疯了一天。他们在那里玩了上述装置的游戏,觉得非常有趣,所以想和你一起分享。游戏的原理是:

小球从结点1处往下落。每个结点上都有一个开关,初始全部关闭。开关状态决定小球落下的方向,小球到达一个结点时,如果该结点上的开关关闭,则小球往左走,否则往右走,直到走到叶结点。同时每当小球经过结点时,便拨动开关,使之处于另一状态。

例如,对于如图的游戏装置,第1小球将走1,2,4路径。由于第1小球走过,第1结点将从关闭态变成开启态,第2结点从关闭态变成开启态,所以第2小球下落时,将走1,3,6路径,并同时使结点1呈关闭态,结点3呈开启态。

对于某个深度是d的游戏装置,一些小球从结点1处依次落下,最后一个小球下落的路径将会是怎样的呢?

Input

输入数据有多组(≤20000)。每组数据有两个整数,第一整数为游戏装置的深度d(d≤16),第二整数为将要落下的小球个数n(0<n<2^d)。

Output

对于每组数据,在一行中输出最后一个球落下的用结点编号表示的路径。路径中每个结点编号之间空一格,最后一个结点编号后面无空格。

Sample

Input

4 2
3 4

Output

1 3 6 12
1 3 7

Comments

There are no comments at the moment.