C. Плата за проезд
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В стране Древляндии есть $$$N$$$ городов, каждый из которых имеет номер от $$$1$$$ до $$$N$$$. Также известно, что между некоторыми из городов имеются двунаправленные дороги, к тому же из каждого города можно добраться до любого другого единственным способом, возможно, проезжая через другие города. Помимо этого, за проезд по дороге нужно заплатить определенное количество денег. Коммивояжеру Алексею предстоит совершить $$$Q$$$ поездок между парами городов и для каждой он хочет узнать, сколько денег ему придётся потратить в каждой из поездок. Однако стоимость проезда рассчитывается по очень странной формуле: все стоимости проезда перемножаются, а затем полученный результат берётся по модулю $$$10^9 + 7$$$. Так как Алексей очень плохо умеет считать, он просит вас помочь ему. Ваша задача – написать программу, которая для каждой поездки Алексея посчитает её стоимость.

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

В первой строке содержится число $$$N$$$ $$$(1 \le N \le 2 \cdot 10^5)$$$ – количество городов в Древляндии.

В следующих $$$N - 1$$$ строке содержится информация о дорогах. Каждая строка состоит из чисел $$$u, v, w~(1\le u, v \le N, 1 \le w \le 10^9, u \ne v)$$$ – номера городов, соединенных двунаправленной дорогой и цена проезда через дорогу.

В $$$(N+1)$$$-й строке содержится число $$$Q$$$ $$$(1 \le Q \le 2 \cdot 10^5)$$$ – количество поездок, которые совершает Алексей. В следующих $$$Q$$$ строках содержатся пары чисел $$$a$$$ и $$$b$$$ $$$(1 \le a, b \le N, a \ne b)$$$ – номера городов, между которыми нужно посчитать стоимость проезда.

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

Выведите $$$Q$$$ строк – стоимость проездами между городами по формуле, описанной в условии.

Пример
Входные данные
6
1 3 3
3 2 5
4 5 6
6 4 9
4 1 10
5
1 3
3 2
5 6
2 4
2 6
Выходные данные
3
5
54
150
1350