Autoritet

아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

Gospodin Malnar globalno je priznat kao autoritet za mnoge stvari. Primjerice, autoritet je po pitanju kvalitete suhomesnatih proizvoda, ekološkog uzgoja ljutih papričica na balkonskim prostorima, degustacije sokova na bazi grožđa i mnogih drugih stvari. U ovom ćemo se zadatku baviti problemom koji ga trenutno mori te ćemo istražiti kako će gospodin Malnar svoj problem riješiti koristeći neosporan autoritet u avioindustriji.

Naime, gospodin Malnar je ove godine imao zakazane letove u Singapur i Moskvu. Već je rezervirao avionske karte, odabrao prostran smještaj i proučio najbolje wellness & spa destinacije. Nažalost, uslijed epidemiološke krize, putovanja su otkazana. Sav shrvan i zabrinut, odmah je krenuo proučavati redove letenja i opće stanje avioindustrije te primijetio da svijet više nije povezan. „To tako ne može, moram pod hitno spasiti svijet!”, pomislio je gospodin Malnar i bacio se na posao.

Na svijetu postoji NN zračnih luka i MM zračnih linija. Zračne luke označavamo prirodnim brojevima od 11 do NN, a svaka zračna linija spaja neke dvije različite zračne luke, što znači da avioni mogu u oba smjera putovati između te dvije luke. U normalnim je okolnostima bilo moguće iz svake zračne luke proputovati do bilo koje druge zračne luke koristeći jednu ili više zračnih linija, odnosno, svijet je bio povezan. Gospodin Malnar će svijet ponovo povezati sa svega nekoliko telefonskih poziva. Svaki poziv bit će upućen nekoj zračnoj luci, neki će pozivi možda više puta biti upućeni istoj luci, a teći će otprilike ovako:

Predstavnik zračne luke: Dobar dan! Dobili ste zračnu luku, kako vam mogu pomoći?

Gospodin Malnar: Dobar dan, gospodin Malnar pri telefonu. Primijetio sam da vaše zračne linije nemaju smisla i da trebate napraviti potpuno suprotnu stvar. Odnosno, neka skup AA sadrži zračne luke s kojima ste direktno spojeni zračnom linijom, a neka skup BB sadrži sve ostale zračne luke. Želim da ukinete sve zračne linije koje spajaju vašu luku i luke iz skupa AA te da uvedete zračne linije koje će spajati vašu luku i luke iz skupa BB. Ja sad imam nekog posla pa moram ići, vi napravite kako sam rekao.

Predstavnik zračne luke: Ispričavamo se na propustu, postupit ćemo kako ste rekli.

Vaš je zadatak odrediti koji je najmanji broj telefonskih poziva koje gospodin Malnar mora obaviti kako bi ponovo spojio svijet. Također, odredite na koliko je različitih načina mogao obavljati pozive, a da i dalje broj obavljenih poziva bude minimalan. Broj načina potrebno je ispisati modulo 109+710^9 + 7. Moguće je dokazati da, koristeći dovoljno telefonskih poziva, gospodin Malnar uvijek može spasiti svijet.

입력

U prvom su retku prirodni brojevi NN i MM iz teksta zadatka.

U i-tom od idućih MM redaka nalaze dva prirodna broja a_ia\_i i b_ib\_i (1a_i,b_iN1 ≤ a\_i , b\_i ≤ N, a_ib_ia\_i ≠ b\_i) koji označavaju da postoji zračna linija između zračnih luka s oznakama a_ia\_i i b_ib\_i. Neće postojati dvije zračne linije koje spajaju isti par zračnih luka.

출력

U prvom retku ispišite traženi najmanji broj telefonskih poziva iz teksta zadatka.

U drugom retku ispišite traženi broj načina iz teksta zadatka modulo 109+710^9 + 7.

힌트

Pojašnjenje prvog probnog primjera: Svijet je već povezan, stoga gospodin Malnar ne treba obaviti niti jedan poziv.

Pojašnjenje drugog probnog primjera: Sljedeći su nizovi poziva najkraći među onima koji svijet čine povezanim: (1,4)(1, 4), (4,1)(4, 1), (2,3)(2, 3), (3,2)(3, 2).