Egy országban \(N\) 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 \(M\) 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 \(3\) 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.
A program olvassa be a standard input elsĹ‘ sorábĂłl \(N\)-et Ă©s \(M\)-et (\(1 \leq N \leq 50000, 1 \leq M \leq 200000\)), majd a következĹ‘ \(M\) sorbĂłl az \(a_i\), \(b_i\), \(c_i\) szĂłközzel elválasztott egĂ©szeket, melyek jelentĂ©se: az \(a_i\) városbĂłl a \(b_i\) városba Ă©pĂthetĂĽnk \(c_i\) (\(1 \leq c_i \leq 1000000\)) hosszĂş kĂ©tirányĂş utat.
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 \(10^9+7\)-tel vett osztási maradĂ©kát.
4 5 1 2 1 3 4 1 1 3 2 1 4 2 2 3 2
4 3
Ha az 1 hosszúságú éleket, és bármelyik 2 hosszúságú élet választjuk, akkor kapjuk a legrövidebbet.