Непалиндромное заклинание
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Чисэ Хатори ищет, куда опять пропал Элиас. Для этого она собирает компоненты для заклинания по всей округе. Тайные магические переходы доступны только в одну сторону, поэтому представим всю территорию как ориентированный граф с $$$n$$$ вершинами и $$$m$$$ направленными рёбрами. Каждое ребро помечено строчной буквой английского алфавита, обозначающей конкретный компонент заклинаний поиска, который можно на этом переходе найти.

Путём в графе называется любая последовательность рёбер $$$e_1, e_2, \ldots, e_k$$$ такая, что конечная вершина ребра $$$e_i$$$ совпадает с начальной вершиной ребра $$$e_{i+1}$$$ для каждого $$$1 \le i \lt k$$$. Вершины и рёбра в пути могут посещаться несколько раз.

Строкой конкретного пути из $$$k$$$ ребер называется строка длины $$$k$$$, составленная из букв на рёбрах этого пути строго в порядке их следования в нем. Каждая такая строка уникально задает доступное Чисэ заклинание.

Заклинание называется стабильным, если соответствующая ему строка не является палиндромом, то есть если она читается по-разному слева направо и справа налево. При этом заклинание тем мощнее, чем больше компонентов в нем содержится, то есть чем больше длина соответствующей строки.

Требуется определить, существуют ли сколь угодно длинные стабильные заклинания. Если да, выведите, что ответ бесконечен. Иначе найдите максимально возможную длину стабильного заклинания.

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

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

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

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

Допускаются кратные рёбра и петли.

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

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

Для каждого набора входных данных:

Система оценки

Баллы за подзадачи начисляются только в случае, если все тесты соответствующей подзадачи и необходимых подзадач успешно пройдены.

Ниже за $$$N$$$ обозначена сумма $$$n$$$ по всем наборам входных данных в одном тесте, а за $$$M$$$ — сумма $$$m$$$ по всем наборам входных данных в одном тесте.

ПодзадачаБаллыДоп. ограничения Необходимые подзадачи Информация о проверке
0–примеры из условияполная
14$$$n, m \le 5$$$; $$$N, M \le 300$$$0первая ошибка
27 $$$n, m \le 20$$$; $$$N, M \le 1500$$$; все $$$c_i$$$ равны 'a' или 'b' первая ошибка
38$$$n, m \le 50$$$; $$$N, M \le 2000$$$0 – 2первая ошибка
410$$$n, m \le 200$$$; $$$N, M \le 5000$$$0 – 3первая ошибка
58 гарантируется, что ответ — это либо $$$-1$$$, либо $$$0$$$, либо нечетное число первая ошибка
614$$$n, m \le 3000$$$; $$$N, M \le 10\,000$$$0 – 4первая ошибка
715$$$u_ilt; v_i$$$ для всех $$$i$$$первая ошибка
814все $$$c_i$$$ равны 'a' или 'b'2первая ошибка
920нет0 – 8первая ошибка

Примеры

Входные данные
1
1 1
1 1 a
Выходные данные
0
Входные данные
1
4 3
1 2 a
2 3 b
3 4 c
Выходные данные
3
Входные данные
1
5 4
1 2 a
2 3 b
3 4 b
4 5 a
Выходные данные
3
Входные данные
1
2 2
1 2 b
2 2 a
Выходные данные
-1