У Кітті є дерево , що складається з вершин, пронумерованих від до . Її друг Алекс дав їй множин, кожна з яких містить набір вершин. Кітті потрібно обчислити наступний вираз для кожного набору:
де:
позначає неупорядковану пару вершин з множини.
dist(u, v) позначає кількість ребер на унікальному (найкоротшому) шляху між вузлами та .
За заданим деревом та множинами з різних вершин обчисліть значення виразу для кожного набору. Значення виразу слід виводити за модулем 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