만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

해리 포터와 분류 모자

면접 대비

시간 제한2초메모리 제한1024 MB

요약
n과 p가 주어질 때, n번째 학생이 배정되는 기숙사 번호를 구합니다.
난이도

보통10점 중 4점

유형
비트 연산, 수학
정답자
아직 제출이 없습니다

문제

아주 오래전부터 학생들을 기숙사로 나누는 일은 마법 모자가 맡아 왔다. 예전에는 학교에 기숙사가 네 개 있었지만, 최근 개혁으로 기숙사가 pp개가 되었다. 그래도 모자는 여전히 학생들을 나눈다.

축제 전에 모자는 학생들을 기숙사에 배정하는 계획을 미리 세운다. 계획은 수열 a1,a2,…,aka_1, a_2, \ldots, a_k이며, 여기서 aia_i는 ii번째 학생이 배정될 기숙사 번호이다.

모자는 기숙사 번호로 0부터 p−1p-1까지를 사용한다. ii번 기숙사의 다음은 (i+1)(i+1)번 기숙사이고, (p−1)(p-1)번 기숙사의 다음은 0번 기숙사이다. 처음 계획은 0번 기숙사 하나뿐이다. 그 뒤 모자는 현재 계획을 끝에 계속 덧붙이되, 각 기숙사를 그다음 기숙사로 바꾼다.

기숙사 네 개에 학생 아홉 명을 배정하는 경우를 보자. 모자가 만드는 계획은 차례로 (0)(0), (0,1)(0, 1), (0,1,1,2)(0, 1, 1, 2), (0,1,1,2,1,2,2,3)(0, 1, 1, 2, 1, 2, 2, 3), (0,1,1,2,1,2,2,3,1,2,2,3,2,3,3,0)(0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 0)이다. 마지막 계획의 길이가 모든 학생을 배정하기에 충분하므로, 그 뒤의 계획은 만들지 않는다.

nn번째 학생이 pp개의 기숙사 중 어느 기숙사에 배정되는지 구하라.

입력

첫 줄에 질의의 수 qq (1≤q≤100,0001 \le q \le 100{,}000)가 주어진다. 다음 qq개의 줄에는 각각 두 정수 nn과 pp (1≤n≤10181 \le n \le 10^{18}, 2≤p≤10182 \le p \le 10^{18})가 주어진다. nn은 학생 번호이고, pp는 기숙사의 수이다.

출력

각 질의에 대해 nn번째 학생이 배정되는 기숙사 번호를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    10
    1 4
    2 4
    3 4
    4 4
    5 4
    6 4
    7 4
    8 4
    9 4
    10 4
    
    예상 출력
    0
    1
    1
    2
    1
    2
    2
    3
    1
    2