Дано дерево с $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. Структура дерева. Ромбами обозначены фрагменты информации, а числа на рёбрах — уровни сложности.