Diberikan sebuah pohon dengan $N$ simpul dan $N - 1$ sisi, di mana setiap sisi $i$ memiliki tingkat kompleksitas $l_i$. Jarak $d(u, v)$ antara dua simpul $u$ dan $v$ adalah jumlah tingkat kompleksitas di sepanjang lintasan tunggal di antara keduanya pada pohon. Perhatikan bahwa $d(u, v) = d(v, u)$ dan $d(v, v) = 0$.
Terdapat $M$ teka-teki, dan setiap teka-teki $i$ membutuhkan $k_i$ potongan informasi, yang terletak di sepanjang sisi-sisi tertentu pada pohon. Mungkin saja terdapat beberapa potongan informasi pada sisi yang sama!
Untuk sembarang dua simpul $S$ dan $T$, suatu perjalanan antara $S$ dan $T$ dikatakan berhasil jika, di sepanjang lintasan dari $S$ ke $T$, semua potongan informasi yang diperlukan untuk setiap teka-teki yang ditemui berhasil dikumpulkan. Secara spesifik, sebuah teka-teki dianggap dapat dipecahkan selama perjalanan jika semua potongan informasi yang diperlukan untuk teka-teki tersebut ditemui di sepanjang lintasan.
Tugasnya adalah menghitung jumlah jarak untuk semua perjalanan yang berhasil antara sembarang dua simpul $S$ dan $T$ (di mana $1 \le S \le T \le N$), modulo $10^9 + 7$.
Secara formal, tugasnya adalah menghitung:
$$\sum_{\substack{1 \le S \le T \le N, \\ \text{journey } (S, T) \text{ is successful}}} d(S, T)$$
Dimulai dari sebuah simpul $S$, Anda perlu melakukan perjalanan ke simpul lain $T$ di sepanjang lintasan tunggal pada pohon. Di sepanjang jalan, setiap potongan informasi yang terletak pada sisi-sisi lintasan ini akan dikumpulkan secara otomatis. Agar perjalanan dari $S$ ke $T$ dianggap berhasil, perjalanan tersebut harus memenuhi syarat berikut:
- Misalkan $O$ adalah himpunan teka-teki yang setidaknya satu potongan informasinya telah dikumpulkan selama perjalanan. Perjalanan tersebut berhasil jika dan hanya jika semua potongan informasi yang diperlukan untuk memecahkan setiap teka-teki di dalam himpunan $O$ telah dikumpulkan. Dengan kata lain, Anda harus telah mengumpulkan setiap potongan informasi yang dibutuhkan untuk memecahkan setiap teka-teki di dalam $O$ secara tuntas.
Masukan
Baris pertama berisi dua bilangan bulat yang dipisahkan spasi $N$ dan $M$ ($2 \le N \le 10^6, 1 \le M \le 10^6$).
Kemudian, $N - 1$ baris berikutnya masing-masing berisi tiga bilangan bulat yang dipisahkan spasi $a_i, b_i, l_i$ ($1 \le a_i, b_i \le N, 1 \le l_i \le 10^9$), yang mendeskripsikan sebuah sisi $i$ yang menghubungkan simpul $a_i$ dan $b_i$ dengan kompleksitas $l_i$.
Kemudian, definisi dari $M$ teka-teki menyusul. Untuk setiap teka-teki $i$, masukan terdiri dari satu baris yang berisi $k_i$ diikuti oleh $k_i$ bilangan bulat yang dipisahkan spasi $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$), di mana $u_{i_j}$ adalah indeks dari sisi-sisi tempat potongan informasi yang diperlukan untuk memecahkan teka-teki tersebut berada.
Di sini, $K$ adalah jumlah dari semua nilai $k_i$ di seluruh teka-teki, dan dijamin bahwa $1 \le K \le 10^6$.
Keluaran
Keluarkan satu baris yang berisi satu bilangan bulat, yaitu jawaban untuk persoalan ini modulo $10^9 + 7$.
Contoh
Contoh Masukan 1
5 4 1 2 3 1 4 1 1 5 6 4 3 2 2 4 4 1 1 0 2 3 4
Contoh Keluaran 1
17
Catatan
Gambar 1. Struktur pohon. Belah ketupat adalah potongan informasi, dan nilai pada sisi-sisinya adalah kompleksitas.