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

Uolevin luokalla on n oppilasta. Vuoden alussa kukaan ei tunne toista, mutta oppilaat alkavat ystävystyä. Merkintä a \leftrightarrow b tarkoittaa, että oppilaat a ja b ovat ystäviä.

Pikkuhiljaa luokkaan alkaa myös muodostua porukoita. Oppilaat a ja b kuuluvat samaan porukkaan, jos on olemassa ketju a \leftrightarrow x_1 \leftrightarrow x_2 \leftrightarrow \cdots \leftrightarrow x_k \leftrightarrow b.

Tehtäväsi on laskea porukoiden määrä jokaisen uuden ystävyyden jälkeen.

Syöte

Syötteen alussa on kaksi kokonaislukua n ja m: oppilaiden määrä ja ystävyyksien määrä.

Sitten syötteessä on m riviä, joista jokainen kuvaa ystävyyden. Rivillä on kaksi kokonaislukua a ja b: oppilaat a ja b ystävystyvät.

Oppilas ei voi ystävystyä itsensä kanssa, ja samat kaksi oppilasta eivät voi ystävystyä useita kertoja.

Tuloste

Tulosta jokaisen ystävyyden jälkeen porukoiden määrä.

Rajat

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

Esimerkki

Syöte:

5 4
1 2
1 3
2 3
4 5

Tuloste:

4 3 3 2