Обчислення Кітті на дереві#11273

Обчислення Кітті на дереві

1 секунда
128 мегабайтів
Легка

У Кітті є дерево , що складається з вершин, пронумерованих від до . Її друг Алекс дав їй множин, кожна з яких містить набір вершин. Кітті потрібно обчислити наступний вираз для кожного набору:

(\sum_{\{u,v\}} u \cdot v \cdot dist(u,v)) \mod (10^9 + 7)

де:

За заданим деревом та множинами з різних вершин обчисліть значення виразу для кожного набору. Значення виразу слід виводити за модулем 10^9 + 7 для кожного тесту в новому рядку.

Вхідні дані

Перший рядок містить два цілих числа: кількість вершин n~(1 \le n \le 2 \cdot 10^5) у дереві і кількість запитів q~(1 \le q \le 10^5).

Кожен з n - 1 наступних рядків містить два цілих числа і b~(1 \le a, b \le n), що описують неорієнтоване ребро між вершинами та .

Далі слідують 2 \cdot q рядків. Кожен тест задається двома рядками в наступному форматі:

  • Перший рядок містить розмір множини ;

  • Другий рядок містить цілих чисел — елементи множини (1 \le k_i \le 10^5, сума k_i по всім не перевищує 2 \cdot 10^5).

Вихідні дані

Виведіть рядків, де -ий рядок містить значення виразу для -го запиту за модулем 10^9 + 7.

Приклади

Приклад 1

Loading
Loading