B. Майк и строки
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

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

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

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

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

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

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

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

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

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