eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Проблема путешествия Шумейкера

Проблема путешествия Шумейкера

Когда-то существовала очень мирная страна под названием Энлогэния. В те времена Поли Шумейкер мог прийти в страну и свободно путешествовать из города в город, причём делая это без каких-либо препятствий. Эта задача была очень проста, так как каждый город в Энлогэнии был соединён прямой дорогой с любым другим городом в стране. Он мог с легкостью путешествовать по всей стране, посещать каждый город ровно один раз и изучать обувь всех жителей. Но не сейчас. Времена изменились и пришла война в Энлогэнию. Времена, когда люди могли свободно путешествовать, закончились. По всей стране были сформированы конфедерации определенных цветов, и теперь каждый город принадлежит по крайней мере одной и не более двум конфедерациям. При попытке войти в город, вы должны сдать на границе офицеру билет одной из конфедераций, которой этот город принадлежит. При выезде из города, вы получаете билет, принадлежащий другой конфедерации, к которой город принадлежит (т.е. он отличается от того, который вы сдали при входе) или же той же самой конфедерации, если город принадлежит только одной конфедерации. Так как Поли Шумейкер является давним другом Энлогэнии, он имеет право выбрать билет и город, в который он хочет войти в качестве первого города страны, но после этого он должен подчиняться правилам конфедерации. Он хочет сделать то же самое путешествие, которое он делал раньше, посещая каждый город только один раз в Энлогэнии, но теперь это не легко ему сделать, хотя он может выбрать, с какого города начать свой путь. Например, предположим, что в стране есть четыре города, обозначенные числами от \textbf{0} до \textbf{3}. Город \textbf{0} принадлежит конфедерациям красных и зеленых; город \textbf{1} принадлежит только красным, город \textbf{2} относится к зеленым и жёлтым, и город \textbf{3} относится к синим и красным. Если Поли Шумейкер хочет начать в городе \textbf{0}, то он может войти в него, отдав красный или зеленый билет и получить при выходе другой. Если он выбрал красный билет, он уйдет с зеленым билетом, тогда есть единственный город \textbf{2}, в который он может поехать. При выезде из города \textbf{2} он получает жёлтый билет и теперь он не может поехать в другой город. Если бы он выбрал зеленый билет в качестве первого, он получил бы красный при выезде, и тогда он смог бы путешествовать в город \textbf{1} или \textbf{3}. Если же он выберет город \textbf{3}, при выходе он получит синий билет и снова не сможет пойти в другой город. Если же он выберет город \textbf{1}, то он получит красный билет обратно при выходе (город \textbf{1} принадлежит только красной конфедерации) и сможет передвигаться только в город \textbf{3 }и никогда не доберётся до города \textbf{2}. Таким образом, не возможно посетить каждый город ровно один раз, начиная с города \textbf{0}. Впрочем, начав с города \textbf{2 }с жёлтым билетом, оставив город с зеленым билетом, а затем посетив город \textbf{0}, оставив красный билет, а затем посетить город \textbf{1}, оставив обратно красный билет снова и, наконец, посетить город \textbf{3}, можно посетить все города страны. Как вы можете видеть, Поли Шумейкер получил очень трудно выполнимую задачу, поэтому он просит вас помочь ему. Он хочет знать, можно ли выбрать такой город, чтобы начав путешествие с него, он сможет побывать во всех городах Энлогэнии ровно один раз. Можете ли вы помочь Поли Шумейкеру? \InputFile Входные данные содержат несколько тестов. Первая строка каждого теста содержит два целых числа \textbf{N} и \textbf{C}, разделенных одним пробелом, указывающих, соответственно, количество городов (\textbf{1} ≤ \textbf{N} ≤ \textbf{500}) и конфедераций (\textbf{1} ≤ \textbf{C} ≤ \textbf{100}) в стране. Каждая из последующих \textbf{C} строк описывает конфедерацию. Описание начинается с целого числа \textbf{K} (\textbf{0} ≤ \textbf{K} ≤ \textbf{N}), за которым следует \textbf{K }целых чисел, представляющих города, которые принадлежат к этой конфедерации. Все входные данные целые числа, разделенных одним пробелом, города пронумерованы от \textbf{0} до \textbf{N-1}. Каждый город появится в описаниях хотя бы один раз и не более двух раз, также гарантируется, что ни один город не будет повторяться в описании принадлежности к одной конфедерации. На окончание входных данных указывает строка, содержащая два нуля, разделенных одним пробелом. \OutputFile Для каждого теста полученного на входе, ваша программа должна вывести одну строку, содержащую целое число \textbf{-1}, если не представляется возможным совершить указанное путешествие, в соответствии с указанными требованиями, или же одно целое число с номером города, с которого Поли Шумейкер может начать свое путешествие. Если есть несколько правильных ответов, выведите наименьший.
Лимит времени 1 секунда
Лимит использования памяти 256 MiB
Входные данные #1
4 4
1 3
3 0 1 3
2 0 2
1 2
3 4
1 0
3 0 1 2
1 1
1 2
3 4
1 1
2 1 0
2 0 2
1 2
0 0
Выходные данные #1
2
-1
1