Разыскивается: второй носок
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
1024 мебибайта
ввод
стандартный ввод
вывод
стандартный вывод

Никита собирается на соревнование. Самое сложное в этом деле — найти парные носки. В его ящике $$$p$$$ различных пар носков, а также $$$m$$$ одиночных носков, чьи пары Никита давно потерял. Никита берёт носки один за другим, пока среди вытащенных им носков не найдутся два парных. Чему равно математическое ожидание числа вытащенных Никитой носков?

Посчитайте это матожидание по модулю простого числа $$$10^9 + 7$$$. А именно, если ответ равен рациональному числу $$$x / y$$$, то необходимо вывести такое число $$$a$$$, для которого $$$0 \le a < 10^9 + 7$$$ и $$$a \cdot y = x \pmod{10^9 + 7}$$$.

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

В первой строке записано целое число $$$t$$$ — число наборов входных данных ($$$1 \le t \le 10^4$$$). Далее описаны сами наборы.

Каждый набор входных данных задан в отдельной строке, которая содержит два целых числа $$$p$$$ и $$$m$$$ — число пар носков и число одиночных носков в ящике ($$$1 \le p \le 10^6$$$; $$$0 \le m \le 10^6$$$).

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

Для каждого набора входных данных выведите строку, содержащую одно целое число: ответ на задачу.

Пример

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

Примечание

В первом наборе входных данных математическое ожидание равно $$$8 / 3$$$, что по модулю $$$10^9 + 7$$$ равняется $$$666\,666\,674$$$.