어느 날 2436번: 공약수를 해결한 흐즈로는 문제가 너무 시시하다고 생각했습니다. 그래서 흐즈로는 입력될 수 있는 값의 제한을 훨씬 늘려버려서, 최대 1018까지의 양의 정수가 입력될 수 있는 경우를 생각해 보았습니다. 그럼에도 여전히 문제가 풀 만하다고 생각하여, 흐즈로는 이 문제에 대한 쿼리를 최대 50000개까지 물어보기로 하였습니다. 여러분이 해결해야 하는 문제는 다음과 같습니다.
쿼리가 총 Q (1≤Q≤50,000)개 주어집니다. 여러분이 답해야 하는 쿼리는 다음과 같습니다.
대신, 여러분의 편의를 위해 흐즈로는 G와 L의 원래 값 대신 G와 L을 소인수분해한 결과를 제공하기로 했습니다. 모든 쿼리에 충분히 빠르게 대답할 수 있을까요?
첫 번째 줄에 쿼리의 개수 Q (1≤Q≤50,000)가 주어집니다.
두 번째 줄부터 2Q+1 번째 줄까지 총 2Q개의 줄에 총 Q개의 쿼리가 주어집니다. 각 쿼리는 두 줄로 이루어져 있으며, 각 쿼리의 첫 번째 줄에는 G를, 두 번째 줄에는 L을 소인수분해한 결과가 주어집니다. 소인수분해한 결과는 중복을 허용한 소인수의 개수 n과 소인수의 값 n개가 공백으로 분리되어 주어집니다. 모든 쿼리에 대해 0<G≤L≤1018이며 L은 G의 배수입니다. 입력되는 소인수의 순서는 오름차순이 아닐 수도 있습니다.
입력의 양이 많기 때문에 언어에 따른 빠른 입출력 방법을 사용할 것을 권장합니다. 빠른 입출력 방법은 15552: 빠른 A+B를 참고하세요.
각 쿼리에 대해 각각 한 줄에 문제의 정답을 출력합니다.