package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var h int
var n uint64
fmt.Fscan(in, &h, &n)
var ans uint64
dir := 0
for h > 0 {
half := uint64(1) << uint(h-1)
if dir == 0 {
if n <= half {
ans++
dir = 1
} else {
ans += (uint64(1) << uint(h+1)) - 1
n -= half
}
} else {
if n > half {
ans++
n -= half
dir = 0
} else {
ans += (uint64(1) << uint(h+1)) - 1
}
}
h--
}
fmt.Fprintln(out, ans)
}