Təmir
Степан yeni bir mənzil alıb və valideynləri gələnə qədər divar kağızlarını yapışdırmağa qərar verib. İlk baxışda hər şey sadə görünürdü, amma işə başlayanda kiçik bir problem ortaya çıxdı — qonşu divar kağızı zolaqlarında naxışları uyğunlaşdırmaq lazım idi. Tanınmış bir proqramçı olaraq, Stepan bu problemi belə formalaşdırdı. Hər bir divar kağızı zolağını onun bir hissəsi ilə təsvir etmək olar — uzunluğu N və eni M olan bir düzbucaqlı (tam zolaq əldə etmək üçün bu düzbucaqlını özünə sağa və sola çox dəfə əlavə etmək olar). Sadəlik üçün bu düzbucaqlını bərabər hüceyrələrə bölək ki, N sətir və M sütun əmələ gəlsin. Daha da sadə olması üçün divar kağızındakı naxışı "." və "*" (nöqtə və ulduz) simvolları ilə işarələyək, hər bir hüceyrədə bir simvol olmaqla.
Sizə iki divar kağızı zolağının təsviri verilir. Stepan'a kömək edin, ikinci zolağı sağa minimum neçə hüceyrə sürüşdürmək lazım olduğunu müəyyən edən bir proqram yazın ki, onun naxışı birinci zolağın naxışı ilə uyğun gəlsin. Stepan elə divar kağızları alıb ki, həmişə bunu etmək mümkündür.
Giriş verilənləri
Giriş faylının ilk sətiri iki tam ədəd N və M (1 ≤ N ≤ 20, 1 ≤ M ≤ 100000) ehtiva edir. Növbəti N sətir hər biri M simvol olan birinci divar kağızı zolağının təsvirini ehtiva edir. Növbəti N sətir hər biri M simvol olan ikinci divar kağızı zolağının təsvirini ehtiva edir. Hər bir divar kağızı təsviri sətiri yalnız "." və "*" simvollarını ehtiva edir.
Çıxış verilənləri
Çıxış faylı bir ədəd ehtiva etməlidir — ikinci zolağı sağa minimum neçə hüceyrə sürüşdürmək lazım olduğunu göstərən ədəd ki, onun naxışı birinci zolağın naxışı ilə uyğun gəlsin.