섞인 카드 뭉치

서로 다른 카드 P장으로 이루어진 덱에서 주어진 교차 셔플을 반복했을 때 덱이 처음의 정렬된 순서로 돌아오는 최소 횟수를 구한다.

보통5수학정렬정수론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

카드 뭉치에는 짝수 개인 2n2n장의 카드 a1,a2,,a2na_1, a_2, \dots, a_{2n}이 들어 있고, 모두 서로 다르다 (a1<a2<<a2na_1 < a_2 < \dots < a_{2n}). 처음에 뭉치는 완전히 정렬된 상태다. 첫 번째 카드가 a1a_1, 두 번째 카드가 a2a_2이고, 이런 식으로 마지막 카드가 a2na_{2n}이다.

딜러는 다음 두 단계로 이루어진 섞기를 반복한다.

  1. 뭉치를 절반으로 나눈다.
  2. 두 절반의 카드를 번갈아 끼워 넣는다. 1단계를 시작할 때의 카드 순서가 x1,x2,,x2nx_1, x_2, \dots, x_{2n}이면, 2단계가 끝난 뒤의 순서는 xn+1,x1,xn+2,x2,,x2n,xnx_{n+1}, x_1, x_{n+2}, x_2, \dots, x_{2n}, x_n이 된다.

카드 뭉치의 카드 수가 주어질 때, 뭉치가 처음의 정렬된 순서로 돌아오려면 이 섞기를 몇 번 반복해야 하는지 구하는 프로그램을 작성하라.

입력

첫째 줄에 카드 뭉치의 카드 수를 나타내는 짝수 정수 PP가 주어진다 (2P2×1052 \le P \le 2 \times 10^5). PP는 위 설명의 2n2n에 해당한다.

출력

뭉치가 다시 정렬된 순서가 되기까지 섞기를 반복해야 하는 최소 횟수를 한 줄에 정수 하나로 출력한다.