У певному місті є перехресть, з'єднаних вулицями з одностороннім і двостороннім рухом. Це сучасне місто, і на деяких вулицях є тунелі або шляхопроводи. Важливо, щоб між будь-якими двома перехрестями існувала можливість переміщення. Тобто, для будь-яких двох перехресть і повинна бути можливість проїзду як від до , так і від до .
Напишіть програму, яка зчитує опис системи міських вулиць і визначає, чи виконується умова зв'язності.
Вхідні дані містять кілька тестів. Перший рядок кожного тесту містить два цілі числа (2 \le n \le 2000) і (2 \le m \le n \cdot (n - 1) / 2) - кількість перехресть і вулиць. Наступні рядків описують систему міських вулиць, кожен рядок описує одну вулицю. Опис вулиці складається з трьох цілих чисел , (1 \le v, w \le n, v \neq w) і , де і - різні номери перехресть, може бути або . Якщо p = 1, то це вулиця з одностороннім рухом від до , якщо p = 2, то вулиця є двосторонньою і з'єднує і . Пару перехресть з'єднує не більше однієї вулиці.
Останній рядок містить два нулі і не обробляється.
Для кожного тесту виведіть єдиний рядок, що містить ціле число , де дорівнює одиниці, якщо умова зв'язності виконується, і дорівнює нулю в протилежному випадку.
Приклад 1