K. Скучная задача
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Пока скучные соседские дети играют в скучный футбол за окном, маленький Джим играет со своим деревом, состоящим ровно из n вершин. Джим кладет в некоторую вершину S фишку. Игра заканчивается как только фишка окажется в вершине F. Очевидно, что для того, чтобы игра закончилась, фишку нужно как-то передвигать (для наших самых скрупулёзных читатей отметим, что S и F не совпадают). Любая последовательность передвижений, которая хоть сколько-нибудь напоминает Джиму одну из ранее увиденных им последовательностей, кажется ему невероятно скучной. Для того, чтобы избежать невероятно скучных последовательностей, мальчик двигает фишку случайно: если фишка сейчас находится в вершине v, то он равновероятно выбирает одну из соседних c v вершин в дереве и перемещает фишку в нее. Но после того, как Джим сыграл чуть более 4↑↑ 2 раз в данную игру, она также стала казаться ему немного скучной. С другой стороны, большое количество сыгранных игр научило Джима интуитивно понимать, сколько раз в среднем нужно переместить фишку для того, чтобы закончить игру для данных S и F. На следующий день Джим решил, что ставить эксперименты на невинных людях немного интереснее, чем играть с деревом. Для начала, он решил узнать, насколько хорошо справляются с определенем математического ожидания количества перемещений, требуемого для завершения игры другие люди.

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

В первой строке входных данных находятся два числа 2 ≤ n ≤ 105 и 1 ≤ q ≤ 105 — количество вершин в дереве и количество пар вершин S и F, для которых нужно найти матожидание количества перемещений.

Далее следует n - 1 строка, каждая из них содержит числа v и u (1 ≤ ui, vi ≤ n, ui ≠ vi) — номера вершин дерева, соединенных очередным ребром. Гарантируется, что заданный граф представляет собой дерево.

Каждая из следующих q строк содержит числа 1 ≤ Si, Fi ≤ n (Si ≠ Fi) — номера стартовой и конечной вершин для i-го эксперимента.

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

Можно показать, что для любого дерева и заданных стартовой и конечной вершин S, F ответ можно выразить как , где P и Q — взаимно простые целые числа, а . Выведите значение P × Q - 1 по модулю 109 + 7 для каждой пары (Si, Fi) на отдельной строке.

Пример
Входные данные
3 2
1 2
2 3
1 3
1 2
Выходные данные
4
1