#include <bits/stdc++.h>
using namespace std;
const int MX = 109;
const long long inf = (1ll << 60);
const long long mod = 1e9 + 7;
long long n, m, l, ans;
string a[MX];
bool vis[MX];
void first(long long s, long long e, long long p) {
  if (p == m) return;
  if (vis[p]) {
    first(s, e, p + 1);
    return;
  }
  for (int i = s + 1; i <= e; i++) {
    if (a[i][p] < a[i - 1][p]) {
      vis[p] = 1;
      ans++;
      first(s, e, p + 1);
      return;
    }
    if (a[i][p] == a[i - 1][p]) {
      long long j;
      for (j = i; j <= e; j++) {
        if (a[j][p] != a[i][p]) break;
      }
      first(i - 1, j - 1, p + 1);
      i = j - 1;
    }
  }
}
int main() {
  cin >> n >> m;
  if (n == 1) {
    puts("0");
    return 0;
  }
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < 2 * n; i++) {
    first(0, n - 1, 0);
  }
  cout << ans << endl;
}
