\begin{problem}{Разыскивается: второй носок}{\textsl{стандартный ввод}}{\textsl{стандартный вывод}}{1 секунда}{1024 мебибайта}

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

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


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

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


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


\Example

\begin{example}
\exmpfile{example.01}{example.01.a}%
\end{example}

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


\end{problem}

