D. Странное расселение
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

В ЛКШ на территории Летово школьники будь жить в домиках. Некоторые пары домиков соединены крытыми переходами, по которым можно перемещаться в обоих направлениях. В некоторых из этих домиках будут жить преподаватели, но из соображений безопасности они не могут быть размещены произвольным образом. А именно, должны выполняться следующие условия:

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

Помогите организаторам выбрать домики, в которых будут жить преподаватели, так, чтобы выполнялись все требования безопасности, или определите, что это невозможно.

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

В первой строке дано одно целое число $$$t$$$ ($$$1 \le t \le 10^5$$$), обозначающее количество наборов входных данных.

Описание каждого набора входных данных начинается с двух чисел $$$n$$$ и $$$m$$$ ($$$2 \le n \le 3 \cdot 10^5$$$, $$$0 \le m \le 3 \cdot 10^5$$$) — количества домиков и переходов.

Далее следуют $$$m$$$ строк, в каждой из которых даны числа $$$u$$$ и $$$v$$$ ($$$1 \le u, v \le n$$$, $$$u \neq v$$$), описывающие переход между домами $$$u$$$ и $$$v$$$. Гарантируется, что между любыми двумя домами существует не более одного перехода, и никакой переход не соединяет домик сам с собой.

Сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$, и сумма $$$m$$$ по всем наборам входных данных не превосходит $$$3 \cdot 10^5$$$.

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

Для каждого набора входных данных в первой строке выведите «YES», если организаторы могут поселить преподавателей так, чтобы выполнялись требования безопасности, и «NO» в противном случае. Если ответ «YES», то во второй строке выведите количество домов, в которые нужно поселить преподавателей, а в третьей строке — номера выбранных домов.

Примеры
Входные данные
2
3 2
3 2
2 1
4 2
1 4
2 3
Выходные данные
YES
2
1 3 
NO
Входные данные
1
17 27
1 8
2 9
3 10
4 11
5 12
6 13
7 14
8 9
8 14
8 15
9 10
9 15
10 11
10 15
10 17
11 12
11 17
12 13
12 16
12 17
13 14
13 16
14 16
14 15
15 16
15 17
16 17
Выходные данные
YES
8
1 3 4 5 6 9 14 17 
Примечание

Следующая картинка соответствует второму примеру из условия: