Нассер дає вам масив довжини .
Вам задано запитів. Кожен запит містить два цілих числа та .
Для кожного запиту потрібно підрахувати кількість трійок (i, j, k) таких, що:
1 \le i < j < k \le n
l \le \gcd(a[i], a[j], a[k]) \le r
Оскільки відповідь може бути дуже великою, виведіть її за модулем 10^9 + 7.
Кожен тест містить декілька тестових випадків. Перший рядок містить одне ціле число (1 \le t \le 10^4) — кількість тестових випадків. Далі йде опис тестових випадків.
Перший рядок кожного тестового випадку містить два цілих числа та (3 \le n \le 2 \cdot 10^5, 1 \le q \le 2 \cdot 10^5).
Другий рядок кожного тестового випадку містить цілих чисел a_1, a_2, \ldots, a_n (1 \le a_i \le n) — елементи масиву.
Кожен з наступних рядків містить два цілих числа та (1 \le l \le r \le n).
Гарантується, що сума за всіма тестовими випадками не перевищує 2 \cdot 10^5, а сума за всіма тестовими випадками не перевищує 2 \cdot 10^5.
Для кожного запиту виведіть одне ціле число — кількість трійок (i, j, k), для яких належить відрізку [l, r], за модулем 10^9 + 7.
Приклад 1
У першому тестовому випадку n=6, q=2, a=[2,3,2,5,6,6]:
Запит : l=2, r=4. Потрібні трійки (i,j,k), для яких 2 \le \gcd(a_i, a_j, a_k) \le 4.
(1,3,5): \gcd(2,2,6)=2. Підходить.
(1,3,6): \gcd(2,2,6)=2. Підходить.
(1,5,6): \gcd(2,6,6)=2. Підходить.
(3,5,6): \gcd(2,6,6)=2. Підходить.
(5,6,?): Потрібен третій елемент. \gcd(6,6,2)=2, \gcd(6,6,3)=3.
(2,5,6): \gcd(3,6,6)=3. Підходить.
Існує підходящих трійок. Відповідь — .
Запит : l=3, r=4. Потрібні трійки (i,j,k), для яких 3 \le \gcd(a_i, a_j, a_k) \le 4.
(2,5,6): \gcd(3,6,6)=3. Підходить.
Існує підходяща трійка. Відповідь — .
Підзадача ( балів) : (3 \le \sum n \le 50, 1 \le \sum q \le 50)
Підзадача ( балів) : (3 \le \sum n \le 500, 1 \le \sum q \le 500)
Підзадача ( балів) : (3 \le \sum n \le 2000, 1 \le \sum q \le 2000)
Підзадача ( балів) : Без додаткових обмежень.