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

Марковський цикл

Марковський цикл

Обмежений алгоритм Маркова складається з послідовності речень \textbf{s_1s_2...s_N} → \textbf{d_1d_2..d_N}, де \textbf{s_i} і \textbf{d_i} - символи з алфавіту \textbf{A}, \textbf{B}, \textbf{C}. Підрядок \textbf{s_1s_2...s_N} називається лівою, а \textbf{d_1d_2..d_N} - правою частиною речення. Алгоритм виконується над заданим текстовим рядком, що складається з прописних латинських букв \textbf{A}, \textbf{B}, \textbf{C}, наступним чином: перебираються всі речення, починаючи з першого. Якщо ліва частина речення входить у текстовий рядок, то саме ліве входження замінюється правою частиною цього речення, і пошук знову починається з першого речення. Якщо жодне з речень не може бути застосовано, алгоритм зупиняється. При виконанні алгоритму можливі два результати: або зупинка, або нескінченний цикл з певним періодом. За заданим рядком і набором речень алгоритму Маркова визначити кількість "ациклічних" (виконаних до початку циклу) кроків і довжину самого циклу. Якщо алгоритм зупиняється, то довжина циклу вважається нульовою, а всі виконані кроки - ациклічними. \InputFile У першому рядку знаходиться заданий рядок, а у наступних рядках - речення, по одному у рядку. Рядки можуть містити довільну кількість незначущих пропусків. Довжина заданого текстового рядка і лівих частин речень - від \textbf{1} до \textbf{12} букв, кількість речень - від \textbf{1} до \textbf{50}. \OutputFile Вивести два цілих числа, відокремлених пропуском, - кількість ациклічних кроків і довжину циклу.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
ABABC
C    ->A
AB ->BA
BAA ->ABC
Вихідні дані #1
3 3