F. Граф без длинных ориентированных путей
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дан связный неориентированный граф, состоящий из $$$n$$$ вершин и $$$m$$$ ребер. В заданном графе нет ни петель, ни кратных ребер.

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

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

В первой строке заданы два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 2 \cdot 10^5$$$, $$$n - 1 \le m \le 2 \cdot 10^5$$$) — количество вершин и ребер, соответственно.

Следующие $$$m$$$ строк задают ребра: ребро $$$i$$$ задается парой вершин $$$u_i$$$, $$$v_i$$$ ($$$1 \le u_i, v_i \le n$$$, $$$u_i \ne v_i$$$). В заданном графе нет кратных ребер, т. е. для каждой пары ($$$u_i, v_i$$$) не существует других пар ($$$u_i, v_i$$$) и ($$$v_i, u_i$$$) в списке ребер. Также гарантируется, что данный граф является связным (между любой парой вершин существует путь).

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

Если невозможно ориентировать ребра таким образом, что в графе не будет путей из двух или более ребер, выведите "NO" в первой строке.

Иначе в первой строке выведите "YES", а затем выведите любую подходящую ориентацию ребер в виде бинарной строки (строки, состоящей только из '0' и '1') длины $$$m$$$. $$$i$$$-й символ строки должен быть '0', если $$$i$$$-е ребро графа надо ориентировать из $$$u_i$$$ в $$$v_i$$$, и '1' в противном случае. Ребра пронумерованы в том же порядке, в котором заданы во входных данных.

Пример
Входные данные
6 5
1 5
2 1
1 4
3 1
6 1
Выходные данные
YES
10100
Примечание

Граф в первом примере из условия:

Один из возможных ответов: