2015. december
time limit per test
3000 ms
memory limit per test
64 MiB
input
stdin
output
stdout

Egy országban NN város található. Megbíztak minket, hogy tervezzünk utakat a városok közt úgy, hogy bármelyik városból bármelyikbe egyféleképp lehessen eljutni. Mivel egy út megépítésének költsége egyenesen arányos a hosszával, így szeretnénk minimalizálni a megépülő utak összes hosszát. Az országban nagy hegyek is vannak, ezért nem építhetünk utat bármely két város között, hanem csak a bemenő adatokban megadott MM db utat lehet megépíteni. Az útépítést vállaló cég technikai okok miatt nem tud egy adott úthosszból háromnál többet megépíteni (max 33 egyformát ajánl), ezért az úthálózatot úgy kell kialakítani, hogy bármely hosszúságú útból legföljebb három szerepeljen benne. Kérdés, hogy hányféleképp tudjuk megépíteni a lehető legkisebb összhosszúságú úthálózatot.

Input

A program olvassa be a standard input első sorából NN-et és MM-et (1≤N≤50000,1≤M≤2000001 \leq N \leq 50000, 1 \leq M \leq 200000), majd a következő MM sorból az aia_i, bib_i, cic_i szóközzel elválasztott egészeket, melyek jelentése: az aia_i városból a bib_i városba építhetünk cic_i (1≤ci≤10000001 \leq c_i \leq 1000000) hosszú kétirányú utat.

Output

A program írja a standard output első és egyetlen sorába a legrövidebb összhosszúságot, amelyből megépíthető a hálózat, illetve a lehetőségek számának 109+710^9+7-tel vett osztási maradékát.

Example
Input
Copy
4 5
1 2 1
3 4 1
1 3 2
1 4 2
2 3 2
Output
Copy
4 3

Notes

Ha az 1 hosszúságú éleket, és bármelyik 2 hosszúságú élet választjuk, akkor kapjuk a legrövidebbet.

Information
Identifier:
s103
Title:
2015. december
Time limit:
3000 ms
Memory limit:
64 MiB
Tags:
show
Task type:
batch

Submit solution
Beküldéshez lépj be vagy regisztrálj!