#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
int N, M;
string S;
long long dp[(1 << 20)];
const long long INF = 1e18;
int alp[26][26];
long long cost[(1 << 20)];
long long solve(int state) {
  if (dp[state] != INF) return dp[state];
  if (state == 0) return 0;
  for (int i = 0; i < M; i++) {
    if (state & (1 << i)) {
      dp[state] =
          min(dp[state], solve(state ^ (1 << i)) + cost[state ^ (1 << i)]);
    }
  }
  return dp[state];
}
int main() {
  cin.tie(0);
  ios::sync_with_stdio(false);
  cin >> N >> M;
  cin >> S;
  for (int i = 0; i < N - 1; i++) {
    if (S[i] != S[i + 1]) {
      alp[S[i] - 'a'][S[i + 1] - 'a']++;
      alp[S[i + 1] - 'a'][S[i] - 'a']++;
    }
  }
  for (int i = 0; i < (1 << M); i++) dp[i] = INF;
  dp[0] = 0;
  for (int i = 1; i < (1 << M) - 1; i++) {
    vector<int> x, y;
    for (int j = 0; j < M; j++) {
      if (i & (1 << j))
        x.push_back(j);
      else
        y.push_back(j);
    }
    for (int j = 0; j < x.size(); j++) {
      for (int k = 0; k < y.size(); k++) {
        cost[i] += alp[x[j]][y[k]];
      }
    }
  }
  cout << solve((1 << M) - 1) << endl;
  return 0;
}
