#include <bits/stdc++.h>
using namespace std;
const long long INF = 2e18;
int n, m;
string s;
int frec[20][20];
long long rec[1 << 20];
long long search(int mask, int cur) {
  if (rec[mask] != -1) {
    return rec[mask];
  }
  long long minAns = INF;
  for (int i = 0; i < m; i++) {
    if ((mask & (1 << i)) > 0) {
      long long curAns = 0;
      if (cur < m - 1) {
        curAns = search(mask & ~(1 << i), cur + 1);
        for (int j = 0; j < m; j++) {
          if (i != j) {
            if ((mask & (1 << j)) > 0) {
              curAns -= frec[i][j] * cur;
            } else {
              curAns += frec[i][j] * cur;
            }
          }
        }
        minAns = min(minAns, curAns);
      } else {
        for (int j = 0; j < m; j++) {
          if ((mask & (1 << j)) == 0) {
            curAns += frec[i][j] * cur;
          }
        }
        rec[mask] = curAns;
        return curAns;
      }
    }
  }
  rec[mask] = minAns;
  return minAns;
}
int main() {
  cin >> n >> m;
  cin >> s;
  memset(frec, 0, sizeof(frec));
  for (int i = 0; i < 1048576; i++) {
    rec[i] = -1;
  }
  for (int i = 0; i < n - 1; i++) {
    frec[s[i] - 'a'][s[i + 1] - 'a']++;
  }
  for (int i = n - 1; i > 0; i--) {
    frec[s[i] - 'a'][s[i - 1] - 'a']++;
  }
  cout << search((1 << m) - 1, 0) << endl;
}
