Problems
Вершинное покрытие
Вершинное покрытие
Давайте научимся решать следующую \textbf{NP}-задачу.
Вам дан граф и число \textbf{k}. Нужно найти в этом графе такое множество из \textbf{k} вершин, что для каждого ребра данного графа хотя бы один из двух концов ребра лежит в выбранном множестве вершин.
\InputFile
Первая строка содержит \textbf{3} числа \textbf{n}, \textbf{m} и \textbf{k}, где \textbf{n} --- число вершин в графе, \textbf{m} --- число ребер в графе. Следующие \textbf{m} строк содержат описание ребер графа.
Известно, что \textbf{1} ≤ \textbf{k} ≤ \textbf{n} ≤ \textbf{2000}, \textbf{1} ≤ \textbf{m} ≤ \textbf{10^5}. Степень каждой вершины не меньше \textbf{1}.
\OutputFile
Если требуемое множество существует, на первой строке выведите слово \textbf{Yes}, а на второй \textbf{k} чисел --- номера выбранных вами вершин. Если искомого множества не существует, то выведите слово \textbf{No}. Если возможных ответов несколько, выведите любой. Одну вершину нельзя брать в множество \textbf{2} раза, то есть все \textbf{k} чисел должны быть различны.
Input example #1
9 12 4 1 2 2 3 1 4 4 5 1 6 6 7 1 8 8 9 2 5 4 7 6 9 8 3
Output example #1
Yes 2 4 6 8