Олимпиадный тренинг

Задача . I. Необычный граф


На день рождения Ивану подарили последовательность неотрицательных целых чисел \(a_1, a_2, \ldots, a_n\). Он сразу же заметил, что каждый элемент последовательности \(a_i\) удовлетворяет условию \(0 \leq a_i \leq 15\).

Иван — большой любитель теории графов, поэтому он решил превратить подаренную последовательность в неориентированный граф.

В его графе будет \(n\) вершин, а ребро между вершинами \(u\) и \(v\) будет присутствовать тогда и только тогда, когда двоичные записи чисел \(a_u\) и \(a_v\) отличаются ровно в одном бите (иначе говоря, \(a_u \oplus a_v = 2^k\) для какого-то целого \(k \geq 0\), где \(\oplus\) это операция Побитовое исключающее ИЛИ (XOR)).

Через пару дней случилось страшное — Иван забыл последовательность \(a\), у него остался только построенный граф!

Можете ли вы помочь ему, и восстановить любую такую последовательность \(a_1, a_2, \ldots, a_n\), что граф, построенный по тем же правилам, которыми пользовался Иван, совпадет с его графом?

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

В первой строке ввода записаны два целых числа \(n,m\) (\(1 \leq n \leq 500, 0 \leq m \leq \frac{n(n-1)}{2}\)): количество вершин и ребер в графе Ивана.

В следующих \(m\) строках содержится описание ребер: в \(i\)-й строке записаны два целых числа \(u_i, v_i\) (\(1 \leq u_i, v_i \leq n; u_i \neq v_i\)), описывающие неориентированное ребро, соединяющее вершины \(u_i\) и \(v_i\).

Гарантируется, что в данном графе нет кратных ребер. Гарантируется, что для заданного графа существует решение.

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

Выведите \(n\) целых чисел, разделенных пробелами, \(a_1, a_2, \ldots, a_n\) (\(0 \leq a_i \leq 15\)).

Выведенные числа должны удовлетворять условию: в графе Ивана ребро между вершинами \(u\) и \(v\) присутствует тогда и только тогда, когда \(a_u \oplus a_v = 2^k\) для какого-то целого \(k \geq 0\).

Гарантируется, что есть хотя бы одно решение. Если возможных решений несколько, вы можете вывести любое из них.


Примеры
Входные данныеВыходные данные
1 4 4
1 2
2 3
3 4
4 1
0 1 0 1
2 3 0
0 0 0

time 5000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя