Задачі
Прийти та піти
Прийти та піти
У деякому місті є \textbf{N} перехресть, з'єднаних між собою одно- чи двохсторонніми дорогами. Це сучасне місто, деякі вулиці мають тунели та естакади. Очевидно, що повинна існувати можливість проходу між довільними двома перехресями. Тобто для довільних двох перехресть \textbf{V} та \textbf{W} повинен існувати шлях з \textbf{V} у \textbf{W} та з \textbf{W} у \textbf{V}.
Ваша програма повинна прочитати систему вулиць міста і визначити, чи має у ній місце вказана вимога зв'язності.
\InputFile
Вхідні дані складаються з декількох тестів. Перший рядок тесту містить кількість перехресть \textbf{N} (\textbf{2} ≤ \textbf{N} ≤ \textbf{2000}) та кількість вулиць \textbf{M} (\textbf{2} ≤ \textbf{M} ≤ \textbf{N(N - 1)/2}). Наступні \textbf{M }рядків описують систему вулиць міста, один рядок задає одну вулицю. Опис вулиці складається з трьох чисел \textbf{V}, \textbf{W} та \textbf{P}, де \textbf{V} та \textbf{W} - різні номери перехресть (\textbf{1} ≤ \textbf{V}, \textbf{W }≤ \textbf{N}, \textbf{V} ≠ \textbf{W}), а \textbf{P} дорівнює \textbf{1} або \textbf{2}; якщо \textbf{P = 1}, то вулиця однонаправлена, і рух відбувається у напрямку від \textbf{V} до \textbf{W}; якщо \textbf{P = 2}, то вулиця двонаправлена, зв'язує \textbf{V} та \textbf{W}. Кожна пара перехресть з'єднана максимум однією вулицею.
Останній рядок містить два нулі і не опрацьовується.
\OutputFile
Для кожного тесту вивести у окремому рядку одиницю, якщо умова зв'язності має місце, і нуль у протилежному випадку.
Вхідні дані #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