E. Происшествия на лыжах
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Артур — владелец горнолыжного курорта. На горе расположено $$$n$$$ площадок, пронумерованных от $$$1$$$ до $$$n$$$, начиная с вершины и заканчивая подножьем горы. Площадки соединены однонаправленными треками. Все треки направлены от вершины к подножью, поэтому они не могут образовывать направленных циклов. Из каждой площадки исходит не более, чем две трека, но в одну и ту же площадку может входить любое количество треков.

Лыжник может спуститься с одной из площадок до другой, если существует путь из треков, которая ведёт из стартовой площади в конечную. К сожалению, в последнее время участились несчастные случаи из-за того, что лыжники, спускающийся по опасному пути, набирают слишком большую скорость и ставят в опасность себя и окружающих. Путь считается опасным, если он состоит из двух или более треков.

Артур хочет обезопасить своих клиентов и закрыть несколько площадок таким образом, чтобы устранить опасные пути. Если площадка закрыта, все треки, входящие и исходящие из этой площадки, также закрываются.

Формально, после закрытия площадок в оставшейся части не должно существовать пути из двух или более треков.

Артур не хочет закрывать слишком много площадок. Он будет доволен, если удастся найти способ закрыть не более $$$\frac{4}{7}n$$$ площадок, чтобы оставшаяся часть была безопасна. Помогите ему найти любой способ этого добиться.

Входные данные

В первой строке записано одно положительное целое число $$$T$$$ — количество наборов входных данных. После этого следует $$$T$$$ блоков с описанием наборов входных данных.

Первая строка каждого блока содержит два целых числа $$$n$$$ и $$$m$$$ ($$$1 \leq n \leq 2 \cdot 10^5$$$) — количество площадок и треков соответственно.

Следующие $$$m$$$ строк описывают треки. Каждая из этих строк содержит два целых числа $$$x$$$ и $$$y$$$ ($$$1 \leq x < y \leq n$$$) — номера стартовой и финишной площадки очередного трека. Гарантируется, что из каждой площадки исходит не более двух треков. Могут существовать треки, у которых и начала, и концы совпадают.

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^5$$$.

Выходные данные

Для каждого набора входных данных выведите одно целое число $$$k$$$ ($$$0 \leq k \leq \frac{4}{7}n$$$) — количество площадок, которые нужно закрыть. В следующей строке выведите $$$k$$$ различных целых чисел — номера площадок, которые нужно закрыть, в любом порядке.

Если существует несколько ответов, разрешается вывести любой из них. Обратите внимание, что минимизировать $$$k$$$ не требуется. Можно показать, что подходящий ответ всегда существует.

Пример
Входные данные
2
4 6
1 2
1 3
2 3
2 4
3 4
3 4
7 6
1 2
1 3
2 4
2 5
3 6
3 7
Выходные данные
2
3 4 
4
4 5 6 7 
Примечание

В первом наборе входных данных можно закрыть любые две площадки.

Во втором наборе входных данных закрыть только площадку $$$1$$$ также является корректным.