새로운 요세푸스 문제
Time Limit: 1 SecMemory Limit: 256 MiB

문제

하이비는 요세푸스 문제를 너무 좋아해서, 요세푸스 게임을 만들기로 했다.

요세푸스 게임은 아래와 같이 진행된다.

  1. 번 참가자부터 번 참가자까지 시계 방향으로 차례로 원을 그리며 앉는다.
  2. 하이비는 화살표를 번 참가자를 가리키게 놓은 뒤, 이상 이하의 정수 를 부른다. 이후 아래 과정을 모두 탈락할 때까지 반복한다.
    1. 화살표를 오른쪽으로 번 돌린다. 이 때, 탈락한 참가자의 자리는 건너뛴다.
    2. 화살표를 번 돌린 뒤 가리키는 참가자를 탈락시킨다.
    3. 하이비가 정수 이상 이하의 정수 으로 바꾼다. 이 과정은 건너뛸 수 있다.

일반적인 요세푸스 문제와 달리, 의 값이 중간에 바뀔 수 있음에 주의하자.

예로, 아래는 , 에서 나올 수 있는 과정이다.

josephus-combined.png

선아는 요세푸스 게임을 보다가, 하이비가 최소 몇 번 를 바꿨는지 궁금해졌다.

입력

첫째 줄에 참가자의 수 과 하이비가 부를 수 있는 수의 최댓값 이 주어진다.

둘째 줄에 사람들의 번호 이 탈락한 순서대로 주어진다.

출력

하이비가 를 정한 횟수를 출력한다. 첫 시작할 때 를 정하는 것도 포함된다.

Example Input 1
7 10
6 5 3 4 2 7 1
Example Output 1
2