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

Задача . C. Удаление столбцов


Вам дана прямоугольная таблица размера n × m, состоящая из маленьких латинских букв. За одну операцию можно целиком удалить из таблицы один столбец; оставшиеся части образуют новую сплошную таблицу. Например, после удаления второго столбца из таблицы


abcd
edfg
hijk

 

получится таблица:


acd
efg
hjk

 

Таблица называется хорошей, если ее строки упорядочены сверху вниз в лексикографическом порядке, т.е. каждая строка лексикографически не превосходит следующую за ней. Определите минимальное количество операций удаления столбца, необходимых для того, что сделать данную таблицу хорошей.

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

В первой строке записано два целых числа — n и m (1 ≤ n, m ≤ 100).

В следующих n строках записано по m маленьких латинских букв — символы таблицы.

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

Выведите одно число — минимальное число столбцов, которые необходимо удалить, чтобы таблица стала хорошей.

Примечание

В первом примере таблица уже является хорошей.

Во втором примере достаточно удалить первый и третий столбец.

В третьем примере необходимо удалить все столбцы (обратите внимание, что таблица, в которой все строки пустые, по определению является хорошей).

Пусть строки s и t имеют равную длину. Тогда строка s лексикографически больше строки t, если они не совпадают, и следующий за максимальным общим префиксом s и t (общий префикс может быть пустым) символ строки s идет в алфавитном порядке позже соответствующего символа строки t.


Примеры
Входные данныеВыходные данные
1 1 10
codeforces
0
2 4 4
case
care
test
code
2
3 5 4
code
forc
esco
defo
rces
4

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

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