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

Ковзанярський спорт

Ковзанярський спорт

\includegraphics{https://static.e-olymp.com/content/36/36bbeea53d0d0da597f81c9de33b4b55910f06b3.jpg} Федерація ковзанярського спорту вирішилась на незвичайний експеримент. Тепер на костюмах спортсменів замість стартових номерів будуть написані стартові рядки. Планується, що цео підвищить видовищність змагань. Тим бвльше що рядки планується генерувати випадковим чином. Формально генерація рядка виглядає наступним чином. Рядок визначається послідованістю випадкових символів. Кожен символ генерується незалежно з \textbf{N} перших літер латинського алфавіту з однаковою ймовірністю і додається у кінець існуючого рядка. Символ додається до рядка до тих пір, доки у рядку не зустрінеться у якостві підрядка один із заданих шаблонів. Необхідно знайти математичне очікування довжини сгенерованого рядка. \InputFile У першому рядку записані числа \textbf{N} і \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{8}, \textbf{1} ≤ \textbf{M} ≤ \textbf{10}). \textbf{N} - кількість використовуваних літер у алфавіті. \textbf{M} -- кількість шаблонів. Далі записано \textbf{M} рядків, які містять шаблони, що складаються з \textbf{N} перших літер алфавіту. Довжина шаблонів не перевищує \textbf{10}. \OutputFile Виведіть математичне очікування довжини рядка з точністю два знаки після десяткової крапки.
Ліміт часу 2 секунди
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2 1
ABA
Вихідні дані #1
10.00
Автор Бірюков С.В.
Джерело IV Відкрита олімпіада ЮФУ