#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 30;
int n, m;
int pw[M], cnt[M][M], dp[(1 << 20) + 100];
char s[N];
int main() {
  scanf("%d%d%s", &n, &m, s + 1);
  for (register int i = 1; i <= n - 1; i++)
    cnt[s[i] - 'a' + 1][s[i + 1] - 'a' + 1]++,
        cnt[s[i + 1] - 'a' + 1][s[i] - 'a' + 1]++;
  for (register int i = 1; i <= m; i++) cnt[i][i] = 0;
  pw[0] = 1;
  for (register int i = 1; i <= 25; i++) pw[i] = pw[i - 1] * 2;
  memset(dp, 0x3f, sizeof(dp));
  dp[0] = 0;
  for (register int S = 1; S <= (1 << m) - 1; S++) {
    int tot = 0;
    for (register int i = 1; i <= m; i++)
      if (S & pw[i - 1]) tot++;
    for (register int i = 1; i <= m; i++) {
      if (!(S & pw[i - 1])) continue;
      int sum = 0;
      for (register int j = 1; j <= m; j++) {
        if (S & pw[j - 1])
          sum += cnt[i][j];
        else
          sum -= cnt[i][j];
      }
      dp[S] = min(dp[S], dp[S ^ pw[i - 1]] + sum * (tot - 1));
    }
  }
  printf("%d", dp[(1 << m) - 1]);
}
