Задачі
Розфарбування графа
Розфарбування графа
Вам потрібно написати програму, яка пробує знайти оптимальне розфарбування для заданого графа. Фарбування застосовується до вершин графа і доступні лише два кольори: чорний та білий. Розфарбування графа називається оптимальним, якшо у ньому максимальна кількість чорних вершин. Розфарбування обмежено тим правилом, що не може бути двох суміжних чорних вершин.
\includegraphics{https://static.e-olymp.com/content/37/37877d420c9391068ceee575f703d7b0aaf4f65a.jpg}
\textit{Рисунок 1}: оптимальный граф з трьома чорними вершинами
\InputFile
Граф задається множиною вершин, позначенных числами \textbf{1}...\textbf{n}, \textbf{n} ≤ \textbf{100}, та набором неорієнтовних ребер, заданих парами чисел -- номерами вершин (\textbf{n_1}, \textbf{n_2}), \textbf{n_1} ≠ \textbf{n_2}. Вхідний файл містить \textbf{m} графів. Число \textbf{m} задано у першому рядку. У першому рядку опису кождого графа містяться числа \textbf{nі}и \textbf{k}, кількість вершин та кількість ребер, відповідно. Наступні \textbf{k} рядків містять ребра - пари номерів вершин, відокремлених пропуском.
\OutputFile
Вихідні дані повинні містити \textbf{2m} рядків, по два рядки для кожного графа, заданого у вхідних даних. Перший рядок повинен містити максимальну кількість вершин графа, які можуть бути пофарбовані у чорний колір. Другий рядок повинен містити одну з можливих оптимальних рохфарбовок. Вона задається списком чорних вершин, відокремлених пропуском.
Вхідні дані #1
1 6 8 1 2 1 3 2 4 2 5 3 4 3 6 4 6 5 6
Вихідні дані #1
3 1 4 5