Вершинне покриття#1873

Вершинне покриття

1 секунда
256 мегабайтів
Середня

Давайте навчимося розв'язувати наступну NP-задачу.

Вам дано граф і число . Потрібно знайти таку множину з вершин, що для кожного ребра в даному графі принаймні один з його кінців належить обраній множині вершин.

Вхідні дані

Перший рядок містить цілі числа: , та , де — кількість вершин у графі, — кількість ребер, а — кількість вершин, які потрібно вибрати. Наступні рядків описують ребра графа.

Гарантується, що 1 \leq k \leq n \leq 2000, 1 \leq m \leq 10^5. Ступінь кожної вершини не менше .

Вихідні дані

Якщо така множина існує, у першому рядку виведіть Yes, а у другому рядку — різних цілих чисел, які є номерами вибраних вершин. Якщо такої множини не існує, виведіть No. Якщо існує декілька можливих відповідей, виведіть будь-яку з них. Не можна включати одну й ту ж вершину до множини кілька разів, тому всі чисел мають бути різними.

Приклади

Приклад 1

Loading
Loading