Острівні автобуси
The Island Cargo and Passenger Company планує забезпечити автобусне сполучення для ряду острівних держав Південного Тихого океану. Кожна держава складається з колекції островів, деякі з яких з'єднані мостами. Щоб зекономити кошти, компанія хоче використовувати якомога менше автобусів. Кожен острів повинен мати доступ до автобуса, але компанія використовуватиме лише один автобус для будь-якої групи з двох або більше островів, які з'єднані мостами.
Ваше завдання - написати програму, яка, маючи карту острівної держави, обчислює кількість островів, мостів і найменшу кількість автобусів, необхідних для цієї країни.
Вхідні дані
Вхідні дані містять послідовність карт, кожна з яких подана у вигляді прямокутного масиву символів (не більше 80 на 80). Між кожною парою карт є один порожній рядок. Вхідні дані закінчуються в кінці файлу.
Усі карти містять лише символи крапка (.), X, # та B. Крапки представляють океанську воду. X та # представляють сушу острова. B представляють мости, і кожен X представляє сушу, яка є кінцевою точкою одного або більше мостів.
Кожна карта містить 1 або більше прямокутних островів. Різні острови не є суміжними вертикально або горизонтально. Діагональна суміжність недостатня для проїзду автобуса.
Кожна карта містить 0 або більше горизонтальних або вертикальних мостів. Кожен міст має принаймні один B і з'єднує лише два острови на своїх кінцях. Мости не перетинаються один з одним і не проходять через сушу острова, позначену #. Жоден B не може бути суміжним з іншим B або X, якщо вони не є частиною одного мосту.
Вихідні дані
Для кожної карти ви повинні надрукувати номер карти, а потім рядки, що вказують кількість островів, мостів і автобусів, необхідних. Надрукуйте порожній рядок між кожною парою вихідних даних карти. Дотримуйтесь формату зразкового виводу.