Чисэ Хатори ищет, куда опять пропал Элиас. Для этого она собирает компоненты для заклинания по всей округе. Тайные магические переходы доступны только в одну сторону, поэтому представим всю территорию как ориентированный граф с $$$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 | – | примеры из условия | полная | ||
| 1 | 4 | $$$n, m \le 5$$$; $$$N, M \le 300$$$ | 0 | первая ошибка | |
| 2 | 7 | $$$n, m \le 20$$$; $$$N, M \le 1500$$$; все $$$c_i$$$ равны 'a' или 'b' | первая ошибка | ||
| 3 | 8 | $$$n, m \le 50$$$; $$$N, M \le 2000$$$ | 0 – 2 | первая ошибка | |
| 4 | 10 | $$$n, m \le 200$$$; $$$N, M \le 5000$$$ | 0 – 3 | первая ошибка | |
| 5 | 8 | гарантируется, что ответ — это либо $$$-1$$$, либо $$$0$$$, либо нечетное число | первая ошибка | ||
| 6 | 14 | $$$n, m \le 3000$$$; $$$N, M \le 10\,000$$$ | 0 – 4 | первая ошибка | |
| 7 | 15 | $$$u_i | lt; v_i$$$ для всех $$$i$$$ | первая ошибка | |
| 8 | 14 | все $$$c_i$$$ равны 'a' или 'b' | 2 | первая ошибка | |
| 9 | 20 | нет | 0 – 8 | первая ошибка |
11 11 1 a
0
14 31 2 a2 3 b3 4 c
3
15 41 2 a2 3 b3 4 b4 5 a
3
12 21 2 b2 2 a
-1