#include <bits/stdc++.h>
using namespace std;
const int MOD = 1e9 + 7;
const int SIZE = 1e5 + 10;
long long dp[SIZE][8];
char s[SIZE];
int get_bit(int x, int v) { return (x >> v) & 1; }
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  scanf("%s", (s + 1));
  for (int i = (1); i < (n + 1); ++i) s[i] -= 'a';
  s[n + 1] = -1;
  for (int i = 0; i < (m); ++i) {
    int state = 1;
    if (i == s[1]) state |= 2;
    if (i == s[1] || i == s[2]) state |= 4;
    dp[1][state]++;
  }
  for (int i = (2); i < (n + 1); ++i) {
    for (int j = 0; j < (8); ++j) {
      int d[4] = {i - 3 + get_bit(j, 0), i - 2 + get_bit(j, 1),
                  i - 2 + get_bit(j, 2)};
      for (int k = 0; k < (m); ++k) {
        int d2[4] = {};
        for (int l = (1); l < (4); ++l) {
          if (s[i - 2 + l] == k)
            d2[l] = d[l - 1] + 1;
          else
            d2[l] = max(d2[l - 1], d[l]);
        }
        if (d2[1] >= i - 2 && min(d2[2], d2[3]) >= i - 1)
          dp[i][(d2[1] - (i - 2)) | ((d2[2] - (i - 1)) << 1) |
                ((d2[3] - (i - 1)) << 2)] += dp[i - 1][j];
      }
    }
  }
  printf("%I64d\n", dp[n][0] + dp[n][1] + dp[n][4] + dp[n][5]);
  return 0;
}
