#include <bits/stdc++.h>
using namespace std;
char s[150][150];
bool col[150];
int rem;
int m, n;
bool ok(int x) {
  bool t = false;
  for (int i = 0; i < m; i++) {
    if (!col[i]) {
      if ((int)s[x][i] > s[x - 1][i]) {
        if (!t) return true;
        return false;
      }
      if ((int)s[x][i] < s[x - 1][i]) {
        col[i] = true;
        rem++;
        t = true;
      }
    }
  }
  if (t) {
    return false;
  }
  return true;
}
bool check() {
  bool b = false;
  for (int i = 0; i < n; i++) {
    if (!ok(i)) {
      b = true;
    }
  }
  if (b) return false;
  return true;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++)
    for (int j = 0; j < m; j++) cin >> s[i][j];
  for (int i = 0; i < m; i++) {
    if (check()) {
      cout << rem << endl;
      return 0;
    }
  }
  cout << rem;
  return 0;
}
