G. Вниз по дереву
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Рассмотрим бинарные деревья, в которых у каждой вершины не более двух детей и каждая вершина помечена либо $$$0$$$, либо $$$1$$$.

За одну операцию можно инвертировать все метки на любом простом пути, проходящем через корень. Инвертировать метку означает заменить $$$0$$$ на $$$1$$$, а $$$1$$$ на $$$0$$$. Заметьте, что путь длины $$$1$$$, содержащий только корень, тоже разрешён.

Стоимость такого бинарного дерева определяется как минимальное число операций, необходимое для того, чтобы сделать все метки в дереве равными $$$0$$$.

Даны два целых числа $$$n$$$ и $$$k$$$. Посчитайте количество различных бинарных деревьев ровно с $$$n$$$ вершинами и стоимостью ровно $$$k$$$. Так как ответ может быть очень большим, выведите его по модулю $$$10^9 + 7$$$.

Два бинарных дерева считаются различными, если у них различается структура, либо если структура одинакова, но хотя бы в одной вершине различаются метки.

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

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

В единственной строке каждого набора входных данных содержатся два целых числа $$$n$$$ и $$$k$$$ ($$$1 \le n \le 10^6$$$, $$$0 \le k \le n$$$).

Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^6$$$.

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

Для каждого набора входных данных выведите на отдельной строке одно целое число — количество помеченных бинарных деревьев с $$$n$$$ вершинами и стоимостью $$$k$$$ по модулю $$$10^9+7$$$.

Пример
Входные данные
6
2 0
2 1
1 1
7 6
69 67
314159 42
Выходные данные
2
4
1
2016
382216284
559671824
Примечание

В первом наборе входных данных имеем $$$n=2$$$ и $$$k=0$$$. Существует два возможных дерева — корень с левым ребёнком и корень с правым ребёнком. Поскольку нужна стоимость $$$0$$$, все вершины должны быть помечены $$$0$$$. Следовательно, ответ равен $$$2$$$.

Во втором наборе входных данных имеем $$$n=2$$$ и $$$k=1$$$. Таких деревьев $$$4$$$. Допустимые помеченные деревья показаны на рисунке ниже:

В третьем наборе входных данных имеем $$$n=1$$$ и $$$k=1$$$. Существует только одно дерево — одна корневая вершина с меткой $$$1$$$. Следовательно, ответ равен $$$1$$$.