Ремонт
Степан приобрёл новую квартиру и к приезду родителей решил поклеить обои. На первый взгляд всё просто, но, когда он приступил к работе, вияснилась небольшая проблема – необходимо выравнивать рисунки на соседних полосах обоев. Как настоящий программист, Степан сформулировал задачу следующим образом. Каждую полосу обоев можно описать её частью – прямоугольником длиной N и шириной M (чтобы получить полную полосу, этот прямоугольник можно много раз дорисовывать к самому себе справа и слева). Для простоты мысленно разделим этот прямоугольник на равные клеточки так, чтобы образовалось N строк и М столбцов. Чтобы было ещё проще, рисунок на обоях обозначим символами "." и "*" (точка и звёздочка), по одному символу в каждой клеточке.
Вам задано описание двух полос обоев. Помогите Степану, напишите программу, которая будет определять, на какое минимальное количество клеточек нужно сместить вторую полосу правее, чтобы её рисунок совпал с рисунком на первой полосе. Степан приобрёл такие обои, что гарантированно всегда это можно сделать.
Входные данные
Первая строка входного файла содержит два целых числа N и M (1 ≤ N ≤ 20, 1 ≤ M ≤ 100000). Последующие N строк содержат по М символов каждая – описание первой полосы обоев. Следующие N строк содержат по М символов каждая – описание второй полосы обоев. Каждая строка описания обоев содержит только символы "." и "*".
Выходные данные
Выходной файл должен содержать одно число – на какое минимальное количество клеточек нужно сдвинуть вторую полосу вправо, чтобы её рисунок совпал с рисунком на первой полосе.