Запросы на делимость

Задан массив aa, состоящий из nn чисел.

Кроме того, вам дано qq запросов. Запрос представляет собой два числа ll и rr. Для каждого запроса требуется найти такой подотрезок [l;r][l'; r'], что llrrl \le l' \le r' \le r, а так же найдётся такое положительное целое число xx, что x>1x > 1 и остаток от деления на xx у всех чисел на подотрезке одинаковый. Найденный подотрезок должен быть максимально возможной длины.

Входные данные

В первой строке записаны числа nn и kk (1n3105; 0k1091 \le n \le 3 \cdot 10^5;\ 0 \le k \le 10^9) – длина массива и коэффициент пересчёта (ниже описано, зачем он нужен).

Во второй строке записаны числа a1,a2,,ana_1, a_2, \dots, a_n – элементы массива. (1ai10181 \le a_i \le 10^{18})

В третьей строке записано число qq – количество запросов (1q31051 \le q \le 3 \cdot 10^5).

В каждой из следующих строк записаны по два числа lil_i и rir_i – границы для ii-того запроса (1l,rn1 \le l, r \le n). Их необходимо пересчитать.

Для первого запроса числа ll и rr равны числам l1l_1 и r1r_1.

Для ii-того запроса число ll равно (li+leni1k1)modn+1(l_i + len_{i - 1} * k - 1) \mod n + 1, где leni1len_{i - 1} - длина подотрезка, выведенного вами в ответ на предыдущий запрос.

Число rr для этого запроса считается аналогично: (ri+leni1k1)modn+1(r_i + len_{i - 1} * k - 1) \mod n + 1.

Если после пересчёта окажется, что l>rl > r, то их значения стоит поменять местами.

Выходные данные

В ответ на каждый запрос выведите по два числа ll' и rr' – границы искомого подотрезка.

Подзадачи

баллынеобх. подзадачиограничения
1

10

-

q100,n10q \le 100, n \le 10

2

10

1

q1000,n100q \le 1000, n \le 100

3

20

1, 2

q5000,n1000q \le 5000, n \le 1000

4

5

-

q1000,n1000,ai100q \le 1000, n \le 1000, a_i \le 100

5

10

4

q105,n105,ai100q \le 10^5, n \le 10^5, a_i \le 100

6

10

-

k=0k = 0

7

35

1, 2, 3, 4, 5

Нет дополнительных ограничений

STDINSTDOUT
7 0
5 3 8 1 1 6 9
3
5 7
7 6
1 4
6 7
6 7
3 4