#S60001. 多维汉堡

多维汉堡

题目描述

在某个世界里,今天是圣诞节。

在高羽先生的派对上,他决定制作多维汉堡。等级 LL 汉堡LL 是大于等于 00 的整数)定义如下:

  • 等级 00 汉堡就是 11 层肉饼。
  • 等级 LL 汉堡(L1L \geq 1)是从下往上依次叠加:11 层面包、11 个等级 L1L-1 汉堡、11 层肉饼、11 个等级 L1L-1 汉堡、11 层面包。

例如,用 P 表示肉饼,用 B 表示面包,则等级 11 汉堡为 BPPPB(旋转 9090 度后),等级 22 汉堡为 BBPPPBPBPPPBB

高羽先生制作的是等级 NN 的汉堡。腊肠犬"ルンルン"会从这个汉堡的最下方吃掉 XX 层(每一层可以是肉饼或面包)。请问ルンルン会吃到多少块肉饼?

输入格式

第一行包含两个整数 NNXX —— 分别表示汉堡的等级和要吃的层数。

输出格式

输出等级 NN 汉堡从下往上数 XX 层中包含的肉饼数量。

样例输入 #1

2 7

样例输出 #1

4

样例输入 #2

1 1

样例输出 #2

0

样例输入 #3

50 4321098765432109

样例输出 #3

2160549382716056

说明/提示

  • 样例 #1:等级 22 汉堡(BBPPPBPBPPPBB)的最下方 77 层中包含 44 块肉饼。
  • 样例 #2:等级 11 汉堡的最底层是面包。
  • 样例 #3:等级 5050 汉堡的层数已经大到无法用 3232 位整数表示。

约束条件

  • 1N501 \le N \le 50
  • 1X1 \le X \le(等级 NN 汉堡的总层数)
  • N,XN, X 均为整数。