바이타자르는 1,2,…,n번으로 번호가 매겨진 n개의 서랍에 똑같이 생긴 블록 k개를 이리저리 옮기는 놀이를 좋아합니다. 각 서랍에는 블록이 최대 한 개만 들어가고, 항상 정확히 k개의 서랍에 블록이 들어 있습니다. 따라서 하나의 배치는 {0,1}로 이루어진 길이 n의 문자열로 나타낼 수 있고, 이 문자열에는 정확히 k개의 1이 들어 있습니다. i번째 자리가 1이면 i번 서랍에 블록이 있다는 뜻이고, 0이면 없다는 뜻입니다.
한 번의 이동은 어떤 서랍에서 블록 하나를 꺼내 비어 있는 다른 서랍에 넣는 것이며, 이동을 하면 배치가 반드시 바뀝니다.
친구 바이톨리나가 놀이를 지켜보고 있는데, 이미 나온 적이 있는 배치가 다시 나타나는 순간 흥미를 잃고 자리를 뜹니다. 바이타자르는 친구를 최대한 오래 붙잡아 두기 위해, 다음 조건을 모두 만족하는 가장 긴 배치의 나열을 만들고 싶어 합니다.
처음 배치는 앞쪽 k개의 서랍에 블록이 있는 상태입니다(즉 1이 k개, 그 뒤에 0이 n−k개 오는 문자열).
이러한 나열이 가질 수 있는 최대 길이, 즉 나열에 등장하는 배치의 개수를 구하세요(처음 배치는 맨 앞에서 한 번, 맨 끝에서 다시 한 번, 모두 두 번 셉니다).
한 줄에 두 정수 n과 k가 주어집니다 (1≤n≤31, 1≤k≤n).
위 조건을 만족하는 가장 긴 배치 나열의 길이를 정수 하나로 출력하세요. 처음 배치는 맨 앞과 맨 끝에서 각각 한 번씩 셉니다.
예를 들어 n=4, k=2일 때, 네 서랍에 블록 두 개를 놓는 서로 다른 배치는 여섯 가지이고, 가장 긴 나열은 이 여섯 가지를 모두 지난 뒤 처음 배치로 돌아오므로 그 길이는 7입니다.