D. Разделение рёбер
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Вам дан связный, неориентированный и невзвешенный граф с $$$n$$$ вершинами и $$$m$$$ рёбрами. Обратите внимание на ограничение на количество рёбер: $$$m \le n + 2$$$.

Давайте скажем, что мы красим некоторые рёбра в красный и оставшиеся рёбра в синий. Теперь рассмотрим только красные рёбра и посчитаем количество компонент связности в графе. Пусть это значение равно $$$c_1$$$. Аналогично, рассмотрим только синие рёбра и посчитаем количество компонент связности в графе. Пусть это значение равно $$$c_2$$$.

Найдите распределение цветов по рёбрам такое, что величина $$$c_1+c_2$$$ минимальна.

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

Каждый тест состоит из нескольких наборов входных данных. Первая строка содержит единственное целое число $$$t$$$ ($$$1 \le t \le 10^5$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.

Первая строка каждого набора входных данных содержит два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 2 \cdot 10^5$$$; $$$n-1 \leq m \leq \min{\left(n+2,\frac{n \cdot (n-1)}{2}\right)}$$$) — количество вершин и рёбер в графе соответственно.

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

Гарантируется, что сумма $$$n$$$ по всем наборам входных данных не превосходит $$$10^6$$$. Гарантируется, что сумма $$$m$$$ по всем наборам входных данных не превосходит $$$2 \cdot 10^6$$$.

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

Для каждого набора входных данных выведите бинарную строку длины $$$m$$$. $$$i$$$-й символ строки должен быть 1, если $$$i$$$-е ребро должно иметь красный цвет, и 0, если оно должно иметь синий цвет. Если существует несколько способов распределить цвета, чтобы получить минимальную величину, вы можете вывести любой.

Пример
Входные данные
4
5 7
1 2
2 3
3 4
4 5
5 1
1 3
3 5
4 4
1 2
2 3
1 4
3 4
6 7
1 2
1 3
3 4
4 5
1 4
5 6
6 2
2 1
1 2
Выходные данные
0111010
1001
0001111
0
Примечание
  • Граф в первом наборе входных данных следующий:

    $$$c_1 + c_2 = 1 + 2 = 3$$$

  • Граф во втором наборе входных данных следующий:

    $$$c_1 + c_2 = 2 + 2 = 4$$$