CSES - Kaupungit
  • Time limit: 1.00 s
  • Memory limit: 128 MB

Bittimaassa on n kaupunkia, joiden välillä on m tietä. Tavoitteena on rakentaa uusia teitä niin, että mistä tahansa kaupungista pääsee mihin tahansa kaupunkiin.

Tehtäväsi on selvittää, mikä on pienin mahdollinen määrä uusia teitä, joka riittää kaupunkien yhdistämiseen. Tulosta myös yksi tapa valita rakennettavat tiet.

Syöte

Syötteen ensimmäisellä rivillä on kaksi kokonaislukua n ja m: kaupunkien määrä ja teiden määrä. Kaupungit on numeroitu 1,2,\ldots,n.

Sitten syötteessä on m riviä, joista jokainen kuvaa yhden tien. Rivillä on kaksi kokonaislukua a ja b: minkä kaupunkien välillä tie on.

Tie yhdistää aina kaksi eri kaupunkia, ja kahden kaupungin välillä on enintään yksi tie.

Tuloste

Ohjelmasi tulee tulostaa ensin kokonaisluku k: montako tietä täytyy rakentaa.

Sitten ohjelmasi tulee tulostaa k riviä, jotka kuvaavat uudet tiet. Voit tulostaa minkä tahansa kelvollisen ratkaisun.

Rajat

  • 1 \le n \le 10^5
  • 1 \le m \le 2 \cdot 10^5
  • 1 \le a,b \le n

Esimerkki

Syöte:

4 2
1 2
3 4

Tuloste:

1
2 3