Степень разделения
В нашем все более взаимосвязанном мире предполагалось, что каждый на Земле связан со всеми остальными не более чем на шесть степеней разделения. В этой задаче Вы должны найти максимальную степень разделения для заданной сети людей. Для любых двух людей степень разделения - это минимальное количество отношений, которые необходимо преодолеть, чтобы соединить двух людей. Для сети максимальная степень разделения - это самая большая степень разделения между любыми двумя людьми в сети. Если в сети есть пара людей, которые не связаны цепочкой отношений, сеть отключается. Как показано ниже, сеть описывается набором симметричных отношений, каждое из которых связывает двух людей. Каждая связь представляет собой отношения между двумя людьми.
Входные данные
Состоит из нескольких тестов, описывающих сети людей. Для каждого набора данных первая строка содержит два целых числа: - количество людей в сети и - количество связей в сети. После этой первой строки идут отношений. Каждая связь состоит из двух строк, которые представляют собой имена связанных людей в сети. Имена уникальны и не содержат пробелов. Поскольку человек может быть связан более чем с одним другим человеком, имя может встречаться в наборе данных несколько раз. За последним тестом следует строка, содержащая два нуля.
Выходные данные
Для каждой сети выведите ее номер, за которым следует максимальная степень разделения. Если сеть отключена, выведите DISCONNECTED
. После ответа для каждой сети выведите пустую строку. Используйте формат, показанный в примере выходных данных.
Примеры
Примечание
В первом тесте сеть имеет максимальную степень разделения . Во втором тесте сеть отключена.