#include <bits/stdc++.h>
using namespace std;
int max(int a, int b) { return ((a > b) ? a : b); }
int min(int a, int b) { return ((a < b) ? a : b); }
int dd(int a, int b) { return (a + b - 1) / b; }
int main() {
  int n, k, h, m, mn = 1001, p[100];
  string s, spro[100], smx;
  bool f = false;
  cin >> n >> m;
  for (int i = 0; i < n; ++i) cin >> spro[i];
  int kol = 0;
  bool lol = false;
  int t = 1;
  while (t <= m - kol) {
    for (int i = 1; i < n; ++i)
      if ((spro[i].substr(0, t)).compare(spro[i - 1].substr(0, t)) < 0) {
        lol = true;
        break;
      }
    if (lol) {
      for (int i = 0; i < n; ++i)
        spro[i] = spro[i].substr(0, t - 1) + spro[i].substr(t, m - kol);
      ++kol;
      lol = false;
    } else
      ++t;
  }
  cout << kol;
  return 0;
}
