列の削除
テストごとの制限時間
2 秒
テストごとのメモリ制限256 メガバイト
入力
標準入力
出力
標準出力
あなたには、 n?×?m 英小文字で構成される長方形のテーブル。 1 回の操作で、テーブルから 1 つの列を完全に削除できます。残りの部分を結合して新しいテーブルを形成します。たとえば、テーブルから 2 番目の列を削除した後、
abcdedfghijk
というテーブルが得られます:
acdefghjk
テーブルの行が辞書順に上から下に順序付けされている場合、つまり各行が辞書順に以下の場合、そのテーブルは「良好」と呼ばれます。次のもの。特定のテーブルを良好にするために必要な列を削除する操作の最小数を決定します。
入力
最初の行には 2 つの整数が含まれています ? n および m (1?≤?n,?m?≤?100)。
次の n 行には、それぞれ m 個の小さな英語の文字が含まれています?表の文字。
出力
単一の数値を出力しますか?テーブルを良好にするために削除する必要がある列の最小数。
サンプル テスト
入力
1 10codeforces
入力
4 4casecaretestcode
出力
入力
5 4codeforcescodeforces
出力
注
最初のサンプルでは、テーブルはすでに良好です。 2 番目のサンプルでは、最初と 3 番目の列を削除できます。 3番目のサンプルではすべての列を削除する必要があります (定義上、すべての行が空のテーブルが良好であるとみなされることに注意してください)。
文字列 s と t は同じ長さにしてください。次に、それらが等しくなく、s と t の最大の共通接頭辞に続く文字 (接頭辞は空の場合があります) が s の対応する文字 t よりアルファベット順に大きい場合、s は t よりも辞書編集的に大きくなります。
分析: これも暴力に基づいており、中間には厳格な処理があります。 :
れーい