#再起関数を使ったのが以下のもの、defで定義して漸化式を使う
#レベル N バーガーの下から X 層に含まれるパティの枚数」を f(N,X)とおく
n,x = gets.strip.split.map(&:to_i)
def f(n,x)
  if n==0
    return 1
  else
    if x==1
      return 0
    elsif 2<=x && x<=2**(n+1)-2
      return f(n-1,x-1)
    elsif x==2**(n+1)-1
      return f(n-1,x-2)+1
    elsif 2**(n+1)<=x && x<=2**(n+2)-4
      return f(n-1,2**(n+1)-3)+1+f(n-1,x-2**(n+1)+1)
    else
      return 2*f(n-1,2**(n+1)-3)+1
    end
  end
end
puts f(n,x)