I. Необычный граф
ограничение по времени на тест
5 секунд
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

На день рождения Ивану подарили последовательность неотрицательных целых чисел $$$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$$$.

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

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