Laiko ribojimas: 1s

Atminties ribojimas: 64MB

Duomenų failas: ciuozykla.in

Rezultatų failas: ciuozykla.out

Jei norite pateikti savo sprendimą - prisijunkite.

Čiuožykla

Faustas mokosi čiuožti ledu. Kadangi mokytis jis dar tik pradėjo, tai kol kas vienintelis jam galimas judėjimo būdas yra atsispirti nuo sniego kruvelės ir čiuožti tiesia linija į šiaurę, pietus, rytus arba vakarus tol, kol galų gale pasieks kitą sniego krūvelę. Faustas pastebėjo, kad čiuožinėjant tokiu būdu nuo kai kurių sniego krūvelių yra neįmanoma pasiekti kai kurių kitų krūvelių, kad ir kiek atsispyrimų būtų atlikta. Todėl jis nori sustumti papildomų sniego krūvelių taip, kad taptų įmanoma nuo bet kurios sniego krūvelės pasiekti bet kurią kitą atlikus tam tikrą skaičių atsispyrimų. Padėkite Faustui rasti, kiek mažiausiai papildomų sniego krūvelių reikia pridėti.

Tarkite, kad sniego krūveles galima dėti tik taškuose, kurių koordinatės yra sveikieji skaičiai.

Pradiniai duomenys

Pirmoje eilutėje pateikiamas vienas sveikasis skaičius n - sniego krūvelių skaičius (1\\leqn\\leq1000).

Toliau seka n eilučių. i-ojoje iš jų yra du sveikieji skaičiai x_i ir y_i - i-osios sniego krūvelės koordinatės (1\\leqx_i,y_i\\leq1000). Visų sniego krūvelių koordinatės yra skirtingos.

Rezultatai

Jūsų programa turi išvesti vieną sveikąjį skaičių - kiek mažiausiai sniego krūvelių reikia pridėti, kad iš bet kurios sniego krūvelės būtų įmanoma patekti į bet kurią kitą.

Pavyzdžiai

Pradiniai duomenys Rezultatai
2
2 1
1 2
1
2
2 1
4 1
0