eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Прийди и уйди

Прийди и уйди

В некотором городе имеется n перекрестков, соединенных улицами с односторонним и двусторонним движением. Это современный город, и на некоторых улицах имеются туннели или путепроводы. Очевидно, между любыми двумя перекрестками должна быть возможность перемещаться. Точнее, для любых двух пересечений v и w должна быть возможность проезда от v к w и от w к v.

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

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

Входные данные содержат несколько тестов. Первая строка каждого теста содержит два целых числа n (2n2000) и m (2mn * (n1) / 2) - количество перекрестков и улиц. Следующие m строк описывают систему городских улиц, каждая строка описывает одну улицу. Описание улицы состоит из трех целых чисел v, w (1v, wn, vw) и p, где v и w - разные номера перекрестков, p может быть 1 или 2. Если p = 1, то это улица с односторонним движением от v до w, если p = 2, то улица является двусторонней и связывает v и w. Пару перекрестков соединяет не более одной улицы.

Последняя строка содержит два нуля и не обрабатывается.

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

Для каждого теста выведите единственную строку, содержащую целое число g, где g равно единице, если условие связности выполнено, и g равно нулю в противном случае.

Лимит времени 1 секунда
Лимит использования памяти 128 MiB
Входные данные #1
4 5
1 2 1
1 3 2
2 4 1
3 4 1
4 1 2
3 2
1 2 2
1 3 2
3 2
1 2 2
1 3 1
4 2
1 2 2
3 4 2
0 0
Выходные данные #1
1
1
0
0