Задачі
Кольорова карта
Кольорова карта
Ви були досить везучими, щоб отримати карту при вході у легендарний таємничий чарівний світ. На карті показано усі території запланованого дослідження, у тому числі ряд країн зі складними кордонами. Карта чітко прорисована, але сірими чорнилами, і тому важко з поршого погляду визначити, яка область належить до якої країни, а це може призвести вас до серйозних наслідків. Ви вирішили розфарбувати карту перед тим як поринути у таємничий світ. "\textit{Багато залежить від підготовки}", не раз ви казали собі.
Кожна країна має одну чи декілька територій, кожна з яких має полігональну форму. Території, які належать одній країні можуть дотикатись, а можуть і не дотикатись одна до одної, тобто можуть бути роз'єднані території. Усім територіям, які належать одній і тій же країні, потріьно надати один і той же колір. Більше того, ви можете надати один колір і більше ніж одній країні, але, щоб уникнути плутаниці, двом сусіднім різним країнам потрібно надати різні кольори. Дві країни вважаються \textit{сусідніми}, якщо довільною частиною своїх територій мають спільну границю ненульової довжини.
Напишіть програму, яка знаходить найменшу кількість кольорів, необхідних для розфарбування карти.
\InputFile
Вхідні дані складаються з декількох картографічних даних. Кожна задана карта починається з рядка, який містить загальну кількість територій \textbf{n}, після чого дані для цих територій. \textbf{n} - натуральне число, не більше за \textbf{100}. Дані про території з \textbf{m} вершин мають наступний формат:
\textbf{String x1 y1 x2 y2 : : : xm ym -1}
"\textbf{String}" (послідовність алфавітно-цифрових символів) задає назву країни, якій він належить. Назва країни має по меншій мірі один символ і ніколи не буде більше двадцяти. Коли у країні є декілька територій, її ім'я з'явиться у кожному з її описів.
Інші рядки задають вершини території. Вершина у рядку даних подається парою невід'ємних цілих чисел, які задають \textbf{х}- та \textbf{у}-координати вершини. \textbf{х}- та \textbf{у}-координати відокремлено пропуском, і після \textbf{у}-координати відразу йде переведення рядка. Границі кожної території отримуються шляхом з'єднання сусідніх вершин, а також першої та останньої вершини. Жодна з \textbf{х}- та \textbf{у}-координат не перевищує \textbf{1000}. Єдине число \textbf{-1} у рядку означає завершення перерахування вершин. Кількість вершин \textbf{m} не перевищує \textbf{100}.
Можно вважати, що контури полігонів прості, тобто вони не перетинаються і дотикаються самі до себе. Немає двох многокутників, які розділяють області ненульової площі. Кількість країн на карті не перевищує \textbf{10}.
Завершенням опису є рядок, який містить лише нуль і позначає завершення вхідних даних.
\OutputFile
Для кожної заданої карти вивести у окремому рядку найменшу кількість кольорів, необхідни для розфарбування чергової карти, яка задовольняє заданим умовам.
Вхідні дані #1
6 Blizid 0 0 60 0 60 60 0 60 0 50 50 50 50 10 0 10 -1 Blizid 0 10 10 10 10 50 0 50 -1 Windom 10 10 50 10 40 20 20 20 20 40 10 50 -1 Accent 50 10 50 50 35 50 35 25 -1 Pilot 35 25 35 50 10 50 -1 Blizid 20 20 40 20 20 40 -1 4 A1234567890123456789 0 0 0 100 100 100 100 0 -1 B1234567890123456789 100 100 100 200 200 200 200 100 -1 C1234567890123456789 0 100 100 100 100 200 0 200 -1 D123456789012345678 100 0 100 100 200 100 200 0 -1 0
Вихідні дані #1
4 2