eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Підрахунок шляхів

Підрахунок шляхів

За заданим орієнтовним графом g необхідно визначити кількість різних циклів, які мають довжину меншу k. Оскільки ця кількість може бути великою, обчислювати її слід по модулю m. Циклом називається непуста послідовність вершин (необов'язково різних), у якій з кожної попередньої вершини у наступну веде ребро, а також існує ребро, яке веде з останньої вершини у першу. Два цикла вважаються різними, якщо послідовності вершин, що їх визначають, різні.

Вхідні дані

Перший рядок містить кількість вершин у графе n (1n35) і числа k (1k106) та m (1m109). Наступні n рядків описують граф: j - ий символ i - го рядка матриці суміжності вказує на присутність ребра, що веде з вершини i у вершину j ('Y' означає, що ребро є, 'N' означає, що нема).

Вихідні дані

Вивести одне число - кількість різних циклів у g, довжини яких менші ніж k. Вивести результат за модулем m.

Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
4 6 100
NYNY
NNYN
YNNN
YNNN
Вихідні дані #1
12
Джерело Літня Школа 2010, Севастополь, день М.Медвєдева