РСОП XXXII 2020 25

F. ФЕРИБОТНИ ЛИНИИ 147

Условие


Задача F. ФЕРИБОТНИ ЛИНИИ 
---
Архипелагът Островландия се състои от няколко острова. Всеки остров е свързан с поне една фериботна линия с някой от другите острови, като всички фериботни линии са двупосочни. Между някои два острова може да има и повече от една фериботна линия. Амбициозен владетел на Островландия решил да отвори още няколко фериботни лини така, че да може да се стигне от всеки остров до всеки друг остров – с един ферибот или с няколко ферибота, т.е. с прекачвания от един ферибот на друг в общо за двете линии пристанище. Напишете програма, която да намери минималният брой нови линии, които трябва да бъдат открити. 

Вход: Програмата трябва да може да обработи по няколко тестови примера. Всеки тестов пример започва с ред на стандартния вход, на който е зададен броят N на фериботните лини. Следват N реда, на всеки от които са зададени, разделени с интервал, двата острова, които съответната линия свързва. Островите са означени с трибуквени низове от малки латински букви, в които буквата z не се използва. Различните острови са означени с различни низове. Краят на тестовите примери е означен с 0. 

Изход: За всеки тестов пример, на ред на стандартния вход, програмата трябва да изведе броя на новите фериботни линии, които трябва да се открият, за да се изпълни желанието на владетеля. 

Ограничения: 1 < N < 100000. 

Примерен вход: 
2 
gen fen 
jar far 
0 

Примерен изход:
1