EduBrick

J. Раскраска графа

4000 мс · 256 МБ · всё или ничего

Раскрасьте граф в наименьшее возможное число цветов так, чтобы концы каждого ребра были разного цвета. Выведите число цветов и саму раскраску.

Хроматическое число — одна из самых известных NP-трудных величин. При n≤16n \le 16 она считается за 3n3^n.

Формат ввода

В первой строке tt (1≤t≤31 \le t \le 3) — количество тестов. Далее tt блоков: в первой строке блока nn и mm (1≤n≤161 \le n \le 16, 0≤m≤n(n−1)20 \le m \le \frac{n(n-1)}{2}), затем mm строк с концами рёбер. Рёбра различны, петель нет.

Формат вывода

Для каждого теста выведите в первой строке минимальное число цветов kk, во второй — nn чисел, цвета вершин (каждое от 1 до kk).

Если раскрасок несколько, выведите любую.

Примеры

ввод
3
3 3
1 2
2 3
3 1
5 3
2 1
3 1
4 2
7 7
1 2
1 5
2 5
2 3
2 4
5 6
5 4
вывод
3
2
3
Разбор идеи от автора задачи. Сначала попробуйте сами.
Войдите, чтобы отправлять решения.