#include <bits/stdc++.h>
using namespace std;
const int MX = 155;
const double PI = acos(-1.0), EPS = 1e-9;
int N, M;
char g[MX][MX];
set<pair<int, int> > st;
bool take;
bool ch_inc(int j) {
  for (int i = 1; i < N; i++) {
    if (g[i][j] < g[i - 1][j]) return 0;
  }
  return 1;
}
int main() {
  cin >> N >> M;
  for (int i(0); i < N; i++) {
    for (int j(0); j < M; j++) {
      cin >> g[i][j];
    }
  }
  int C = 0, t = 0;
  for (int j = 0; j < M; j++) {
    if (!take) {
      if (!ch_inc(j)) continue;
    }
    if (!take) {
      take = 1;
      C++;
      for (int i = 1; i < N; i++) {
        if (g[i][j] == g[i - 1][j]) {
          st.insert(make_pair(i - 1, i));
        }
      }
      continue;
    }
    bool con = 0;
    for (int i = 0; i < N - 1; i++) {
      if (st.find(make_pair(i, i + 1)) == st.end()) continue;
      if (g[i][j] > g[i + 1][j]) {
        con = 1;
        break;
      }
    }
    if (con == 1) continue;
    for (int i = 0; i < N - 1; i++) {
      if (st.find(make_pair(i, i + 1)) == st.end()) continue;
      if (g[i][j] < g[i + 1][j]) {
        st.erase(make_pair(i, i + 1));
      }
    }
    t++;
    C++;
  }
  cout << M - C << "\n";
  return 0;
}
