Дано дерево з $N$ вершинами та $N - 1$ ребрами, де кожне ребро $i$ має рівень складності $l_i$. Відстань $d(u, v)$ між двома вершинами $u$ та $v$ дорівнює сумі рівнів складності вздовж єдиного шляху між ними в дереві. Зауважте, що $d(u, v) = d(v, u)$ та $d(v, v) = 0$.
Є $M$ головоломок, і для кожної головоломки $i$ потрібно $k_i$ фрагментів інформації, які розташовані на певних ребрах дерева. На одному й тому самому ребрі може знаходитися декілька фрагментів інформації!
Для будь-яких двох вершин $S$ та $T$ подорож між $S$ та $T$ є успішною, якщо вздовж шляху з $S$ до $T$ зібрано всі необхідні фрагменти інформації для будь-якої зустрінутої головоломки. Точніше, головоломка вважається розв'язною під час подорожі, якщо всі необхідні для неї фрагменти інформації зустрілися вздовж шляху.
Завдання полягає в тому, щоб обчислити суму відстаней для всіх успішних подорожей між будь-якими двома вершинами $S$ та $T$ (де $1 \le S \le T \le N$) за модулем $10^9 + 7$.
Формально потрібно обчислити:
$$\sum_{\substack{1 \le S \le T \le N, \\ \text{journey } (S, T) \text{ is successful}}} d(S, T)$$
Починаючи з вершини $S$, вам потрібно дістатися до іншої вершини $T$ вздовж єдиного шляху в дереві. Дорогою будь-який фрагмент інформації, розташований на ребрах цього шляху, автоматично збирається. Щоб подорож із $S$ до $T$ вважалася успішною, вона повинна задовольняти таку умову:
- Нехай $O$ — множина головоломок, для яких під час подорожі було зібрано принаймні один фрагмент інформації. Подорож є успішною тоді й лише тоді, коли зібрано всі фрагменти інформації, необхідні для розв'язання кожної головоломки з множини $O$. Іншими словами, ви повинні зібрати кожен фрагмент інформації, потрібний для повного розв'язання кожної головоломки в $O$.
Вхідні дані
Перший рядок містить два розділені пробілом цілі числа $N$ та $M$ ($2 \le N \le 10^6, 1 \le M \le 10^6$).
Далі йдуть $N - 1$ рядків, кожен з яких містить три розділені пробілами цілі числа $a_i, b_i, l_i$ ($1 \le a_i, b_i \le N, 1 \le l_i \le 10^9$), що описують ребро $i$, яке з'єднує вершини $a_i$ та $b_i$ зі складністю $l_i$.
Потім ідуть описи $M$ головоломок. Для кожної головоломки $i$ вхідні дані містять один рядок, що починається з $k_i$, за яким ідуть $k_i$ розділених пробілами цілих чисел $u_{i_1}, u_{i_2}, \dots, u_{i_{k_i}}$ ($0 \le k_i \le K, 1 \le u_{i_j} \le N - 1$), де $u_{i_j}$ — індекси ребер, на яких розташовані фрагменти інформації, необхідні для розв'язання головоломки.
Тут $K$ — сума всіх значень $k_i$ за всіма головоломками, і гарантується, що $1 \le K \le 10^6$.
Вихідні дані
Виведіть один рядок, що містить одне ціле число — відповідь на задачу за модулем $10^9 + 7$.
Приклад
Приклад вводу 1
5 4 1 2 3 1 4 1 1 5 6 4 3 2 2 4 4 1 1 0 2 3 4
Приклад виводу 1
17
Примітка
Рисунок 1. Структура дерева. Ромби — це фрагменти інформації, а значення на ребрах — рівні складності.