분류 모자

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

문제

마법 학교는 오래전부터 마법 모자로 학생을 각 학부에 배정한다. 예전에는 학부가 4개였지만, 학교를 개편한 뒤 학부 수가 pp개로 바뀌었다. 모자는 지금도 학생 배정에 쓰인다.

배정 계획은 수열 a[1],a[2],,a[k]a[1], a[2], \dots, a[k]로 나타낸다. a[i]a[i]ii번 학생이 들어갈 학부다.

모자가 계획을 만드는 방법은 다음과 같다. 학부에는 00부터 p1p-1까지 번호가 붙어 있다. xx 다음 학부를 next(x)\text{next}(x)라 하면, x<p1x < p-1일 때 next(x)=x+1\text{next}(x) = x+1이고 next(p1)=0\text{next}(p-1) = 0이다. 계획은 원소가 00 하나뿐인 수열에서 시작한다. 한 단계를 거칠 때마다 원소가 kk개인 수열 aa는 원소가 2k2k개인 새 수열 a[1],a[2],,a[k],next(a[1]),next(a[2]),,next(a[k])a[1], a[2], \dots, a[k], \text{next}(a[1]), \text{next}(a[2]), \dots, \text{next}(a[k])가 된다.

학부가 4개일 때 학생 9명을 배정하는 과정을 보자. 모자는 다음 순서로 계획을 늘린다.

(0)(0,1)(0,1,1,2)(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) \to (0, 1) \to (0, 1, 1, 2) \to (0, 1, 1, 2, 1, 2, 2, 3) \to (0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 0)

마지막 수열의 길이는 학생 9명을 배정하기에 충분하다. 단계를 계속 반복하면 수열은 얼마든지 길어지므로, 어떤 학생 번호든 배정 학부가 정해진다.

nnpp가 여러 쌍 주어진다. 학부가 pp개일 때 nn번 학생이 어느 학부에 들어가는지 구하여라. 학생 번호는 1번부터 시작한다.

입력

첫째 줄에 질의의 개수 QQ가 주어진다 (1Q3100001 \le Q \le 310\,000).

다음 QQ개의 줄에 각각 두 정수 nnpp가 이 순서대로 공백으로 구분되어 주어진다 (1n10181 \le n \le 10^{18}, 2p10182 \le p \le 10^{18}).

출력

QQ개의 줄에 각 질의의 답을 입력 순서대로 출력한다. 각 줄에는 nn번 학생이 들어갈 학부의 번호를 출력한다.