#include <bits/stdc++.h>
using namespace std;
bool lex(string &a, string &b, int l) {
  for (int i = 0; i < l; i++) {
    if (a[i] > b[i]) return false;
    if (a[i] < b[i]) return true;
  }
  return true;
}
int main() {
  ios::sync_with_stdio(false);
  int n, m;
  cin >> n >> m;
  string s[n];
  for (int i = 0; i < n; i++) cin >> s[i];
  int l = 0, L = m, cnt = 0;
  for (int i = 0; i < m; i++) {
    bool key = true;
    for (int j = 0; j < n; j++) {
      if (j) {
        if (!lex(s[j - 1], s[j], l + 1)) {
          key = false;
          break;
        }
      }
    }
    if (!key) {
      for (int j = 0; j < n; j++) {
        string temp = s[j].substr(0, l);
        if (l + 1 < L) temp = temp + s[j].substr(l + 1, L - 1);
        s[j] = temp;
      }
      L--;
      cnt++;
    } else
      l++;
  }
  cout << cnt << endl;
  return 0;
}
