eolymp
bolt
Try our new interface for solving problems
Problems

Ремонт

Ремонт

Степан приобрёл новую квартиру и к приезду родителей решил поклеить обои. На первый взгляд всё просто, но, когда он приступил к работе, вияснилась небольшая проблема -- необходимо выравнивать рисунки на соседних полосах обоев. Как настоящий программист, Степан сформулировал задачу следующим образом. Каждую полосу обоев можно описать её частью -- прямоугольником длиной \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 Выходной файл должен содержать одно число -- на какое минимальное количество клеточек нужно сдвинуть вторую полосу вправо, чтобы её рисунок совпал с рисунком на первой полосе.
Time limit 1 second
Memory limit 64 MiB
Input example #1
2 5
.*.*.
*.*.*
*.*..
.*.**
Output example #1
1
Source Stage III All-Ukrainian School Olympiad 2012-2013, Round 2