Противопожарная безопасность
В городе Зеленоград домов. Некоторые из них соединены дорогами с односторонним движением.
В последнее время в Зеленограде участились случаи пожаров. В связи с этим жители решили построить в городе несколько пожарных станций. Но возникла проблема — едущая по вызову пожарная машина, конечно, может игнорировать направление движения текущей дороги, однако, возвращающаяся с задания машина обязана следовать правилам дорожного движения (жители Зеленограда свято чтут эти правила!).
Ясно, что где бы ни оказалась пожарная машина, у неё должна быть возможность вернуться на ту пожарную станцию, с которой выехала. Но строительство станций стоит больших денег, поэтому на совете города было решено построить минимальное количество станций таким образом, чтобы это условие выполнялось. Кроме того, для экономии было решено строить станции в виде пристроек к уже существующим домам.
Ваша задача — написать программу, рассчитывающую оптимальное положение станций.
Входные данные
В первой строке задано число домов . Во второй строке записано количество дорог . Далее следует описание дорог в формате , означающее, что по -ой дороге разрешается движение автотранспорта от дома к дому .
Выходные данные
В первой строке выведите минимальное количество пожарных станций , которые необходимо построить. Во второй строке выведите чисел в произвольном порядке — дома, к которым необходимо пристроить станции. Если оптимальных решений несколько, выведите любое.