이진 트리 공 떨어뜨리기

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

높이가 hh인 완전 이진 트리가 있습니다 (그림 참고).

각 간선은 열린 상태이거나 닫힌 상태입니다. 처음에는 모든 왼쪽 간선이 열려 있습니다. 뿌리(root)에서 시작하여 공 nn개를 하나씩 떨어뜨립니다. 각 공은 항상 열린 간선을 따라 내려가며, 지나간 직후에는 그 간선을 닫고 같은 정점의 반대쪽 간선을 엽니다. 즉 왼쪽 간선이 열려 있었다면 왼쪽을 닫고 오른쪽을 열며, 오른쪽 간선이 열려 있었다면 오른쪽을 닫고 왼쪽을 엽니다.

nn번째 공이 어느 잎(leaf) 정점에 도달하는지 구하세요. 맨 아래 정점들은 왼쪽부터 오른쪽으로 00부터 2h12^h - 1까지 번호가 매겨져 있습니다.

입력

첫째 줄에 두 정수 nn, hh가 주어집니다 (1n1081 \le n \le 10^8, 0h300 \le h \le 30). 각각 떨어뜨리는 공의 개수와 이진 트리의 높이를 뜻합니다.

출력

nn번째 공이 도달하는 정점의 번호를 정수 하나로 출력합니다.

힌트

높이가 22인 트리에서는 공들이 차례대로 번호 0,2,1,30, 2, 1, 3인 정점에 떨어집니다. 따라서 4번째 공은 33번 정점에 도달합니다. h=0h = 0이면 트리에는 정점이 하나(00번)뿐이므로 모든 공이 00번 정점에 떨어집니다.