Vi намагається зламати сервери корпорації Арасака, щоб відключити захист і проникнути в їхній офіс. Штучний інтелект сервера намагається цьому завадити.
Злам відбувається наступним чином. Розгляньте орієнтований граф, на кожному ребрі якого написана літера англійського алфавіту. Граф може містити декілька ребер між парами вершин і навіть петлі. У Vi є фішка, яка спочатку знаходиться у деякій вершині , а у штучного інтелекту — фішка у деякій вершині . Далі вони по черзі роблять ходи, перший ходить Vi. У свій хід Vi обирає довільне ребро, що виходить з вершини, де знаходиться його фішка. Він пересуває фішку цим ребром і намагається виконати атаку символом , де — літера, написана на вибраному ребрі. У свій хід штучний інтелект також обирає одне з ребер, що виходить із вершини, де знаходиться його фішка, і пересуває фішку цим ребром. При цьому, щоб успішно відбити атаку, він повинен вибрати ребро, на якому написано той самий символ .
Якщо Vi не може зробити хід, оскільки з вершини, де стоїть його фішка, немає жодного вихідного ребра, злам не вдається. Якщо штучний інтелект не може вибрати ребро, що виходить із вершини, де стоїть його фішка, на якому написано символ , злам вдається. Також можлива ситуація, коли Vi і штучний інтелект виконуватимуть ходи безкінечно.
Допоможіть Vi визначити кількість початкових станів, тобто пар вершин і , у яких злам буде успішним за оптимальних дій Vi та штучного інтелекту.
У першому рядку задано два цілих числа і (1 \leq n \leq 1000, 0 \leq m \leq 1000) — кількість вершин і ребер у графі.
У наступних рядках міститься опис ребер графа. Кожен рядок містить два цілих числа a_i і b_i й малу літеру англійського алфавіту c_i, що означає ребро з вершини a_i у вершину b_i з символом c_i (1 \leq a_i, b_i \leq n).
Виведіть одне число — кількість шуканих початкових станів.
Приклад 1
Приклад 2
У першому прикладі, якщо фішки Vi і штучного інтелекту спочатку знаходяться в одній вершині, процес ніколи не закінчиться. В усіх інших випадках злам буде успішним.