EduBrick

D. Сочетания по модулю

3000 мс · 256 МБ · всё или ничего

Теперь ответы большие, и их просят по модулю 109+710^9 + 7.

Дано qq запросов; в каждом надо вывести (nk) mod (109+7)\binom{n}{k} \bmod (10^9+7).

Отвечать на каждый запрос отдельно не выйдет — запросов слишком много. Подготовьте факториалы и обратные к ним один раз, и каждый ответ станет двумя умножениями.

Формат ввода

Первая строка содержит число qq (1≤q≤2⋅1051 \le q \le 2 \cdot 10^5).

Далее идут qq строк, в каждой числа nn и kk (0≤k≤n≤2⋅1050 \le k \le n \le 2 \cdot 10^5).

Формат вывода

Для каждого запроса выведите ответ на отдельной строке.

Примеры

ввод
3
5 2
0 0
10 5
вывод
10
1
252
Войдите, чтобы отправлять решения.