Codeforces Round 283 (Div. 2)
C
Removing Columns
Codeforces
1500
原题
← BD →
翻译中…

You are given an $*n* × *m*$ rectangular table consisting of lower case English letters. In one operation you can completely remove one column from the table. The remaining parts are combined forming a new table. For example, after removing the second column from the table

翻译中…

abcd
edfg
hijk

翻译中…

we obtain the table:

翻译中…

acd
efg
hjk

翻译中…

A table is called good if its rows are ordered from top to bottom lexicographically, i.e. each row is lexicographically no larger than the following one. Determine the minimum number of operations of removing a column needed to make a given table good.

翻译中…

Input

翻译中…

The first line contains two integers  — $*n*$ and $*m*$ ($1 ≤ *n*, *m* ≤$100).

翻译中…

Next $*n*$ lines contain $*m*$ small English letters each — the characters of the table.

翻译中…

Output

翻译中…

Print a single number — the minimum number of columns that you need to remove in order to make the table good.

翻译中…

Note

翻译中…

In the first sample the table is already good.

翻译中…

In the second sample you may remove the first and third column.

翻译中…

In the third sample you have to remove all the columns (note that the table where all rows are empty is considered good by definition).

翻译中…

Let strings $*s*$ and $*t*$ have equal length. Then, $*s*$ is lexicographically larger than $*t*$ if they are not equal and the character following the largest common prefix of $*s*$ and $*t*$ (the prefix may be empty) in $*s*$ is alphabetically larger than the corresponding character of $*t*$.

翻译中…

样例

Input #1
1 10
codeforces
Output #1
0
InputCopy OutputCopy
Input #2
4 4
case
care
test
code
Output #2
2
InputCopy OutputCopy
Input #3
5 4
code
forc
esco
defo
rces
Output #3
4
InputCopy OutputCopy
题目信息
题号
496C
时间限制
2 s
内存限制
256 MB
标签
暴力
构造
模拟

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。