俾定一棵有 $N$ 個節點同 $N - 1$ 條邊嘅樹,其中每條邊 $i$ 都有一個複雜度等級 $l_i$。兩個節點 $u$ 同 $v$ 之間嘅距離 $d(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$),描述連接節點 $a_i$ 同 $b_i$ 且複雜度為 $l_i$ 嘅邊 $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. 樹嘅結構。菱形代表資訊碎片,邊上嘅數值代表複雜度。