Олимпиадный тренинг

Задача . B. Майк и строки


У Майка есть n строк s1, s2, ..., sn. Каждая строка состоит из маленьких букв латинского алфавита. За один ход он может выбрать строку si, удалить первый символ и вставить его в конец этой строки. Например, если у него имеется строка «coolmike», то за один ход он может преобразовать эту строку в строку равную «oolmikec».

Теперь Майк задается вопросом: какое минимальное количество ходов необходимо сделать, чтобы все строки стали равными.

Входные данные

Первая строка содержит целое число n (1 ≤ n ≤ 50) — количество строк.

После этого следуют n строк, каждая из которых содержит строку. i-я строка соответствует строке si. Длины строк одинаковы. Длина каждой строки положительна и не превосходит 50.

Выходные данные

Выведите минимальное количество ходов, которое необходимо сделать, чтобы все строки стали равными, или выведите  - 1, если решения не существует.

Примечание

В первом тестовом примере оптимальным образом будет преобразовать все строки в строку «zwoxz».


Примеры
Входные данныеВыходные данные
1 4
xzzwo
zwoxz
zzwox
xzzwo
5
2 2
molzv
lzvmo
2
3 3
kc
kc
kc
0
4 3
aa
aa
ab
-1

time 2000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя