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

Ремонт

Ремонт

Степан придбав нову квартиру і до приїзду батьків вирішив поклеїти шпалери. На перший погляд все просто, але, коли він приступив до роботи, виявилась невелика проблема -- необхідно вирівнювати малюнки на сусідніх полосах шпалер. Як визнаний програміст, Степан сформулював задачу таким чином. Кожну полосу шпалер можна описати її частиною -- прямокутником довжиною \textbf{N} і шириною \textbf{M} (щоб отримати повну полосу, цей прямокутник можна багато разів домалювати до самого себе справа і зліва). Для простоти подумки поділимо цей прямокутник на рівні клітинки так, щоб утворилось \textbf{N} рядків і \textbf{М} стовпців. Щоб було ще простіше, рисунок на шпалерах позначимо символами "\textbf{.}" і "\textbf{*}" (крапка і зірочка), по одному символу в кожній клітинці. Вам дано опис двох полос шпалер. Допоможіть Степану, напишіть програму, яка визначатиме, на яку мінімальну кількість клітинок потрібно змістити другу полосу вправо, щоб її малюнок співпав з малюнком на першій полосі. Степан придбав такі шпалери, що гарантовано завжди можна це зробити. \InputFile Перший рядок вхідного файлу містить два цілих числа \textbf{N} та \textbf{M} (\textbf{1} ≤ \textbf{N} ≤ \textbf{20}, \textbf{1} ≤ \textbf{M} ≤ \textbf{100000}). Наступні \textbf{N} рядків містять по \textbf{М} символів кожна -- опис першої полоси шпалер. Наступні \textbf{N} рядків містять по \textbf{М} символів кожна -- опис другої полоси шпалер. Кожен рядок опису шпалер містить лише символи "\textbf{.}" і "\textbf{*}". \OutputFile Вихідний файл має містити одне число -- на яку мінімальну кількість клітинок потрібно змістити другу полосу вправо, щоб її малюнок співпав з малюнком на першій полосі.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані #1
2 5
.*.*.
*.*.*
*.*..
.*.**
Вихідні дані #1
1
Джерело III етап Всеукраїнської олімпіади школярів 2012-2013, 2 тур