有一棵二叉树,最大深度为D,且所有叶子的深度都相同。所有节点从上到下,从左到右的编号为1,2,3...,2^D-1.
在结点1处放一个小球,它会往下落,每个内结点上都有一个开关(开关的状态是false或true),初始时全部是false状态,当每次有小球落到这个结点上时,开关的状态被改变。
当小球达到一个内结点时,如果该结点的开关状态是关闭的,则小球往左走,否则往右走,直到走到叶子结点。
如下图所示:

表示结点编号为1,2,3...15,最大深度为4的完全二叉树,由于初始时,所有的结点的开关状态是false,所以第一个球下落时经过结点1 2 4最终落在结点8上,第二个球下落时经过结点1 3 6最终落在结点12上,第三个球下落时,经过结点1 2 5最终落在结点10上。
现在给出多组测试数据,最多包含1000组,每组测试数据两个值。第一个值是D,表示二叉树的最大深度。第二个值是I,表示小球的个数I。
假设I不超过整棵树的叶子个数,2≤D≤20,and 1≤I≤524288
编写一个程序,计算出小球从节点1处依次开始下落,最后一个小球I将会落下哪里?输出第I个小球最后所在的叶子编号。