You are given a string S of length n with each character being one of the first m lowercase English letters. 

Calculate how many different strings T of length n composed from the first m lowercase English letters exist such that the length of LCS (longest common subsequence) between S and T is n - 1.

Recall that LCS of two strings S and T is the longest string C such that C both in S and T as a subsequence.

Input

The first line contains two numbers n and m denoting the length of string S and number of first English lowercase characters forming the character set for strings (1 ≤ n ≤ 100 000, 2 ≤ m ≤ 26).

The second line contains string S.

Output

Print the only line containing the answer.

Examples

Input

3 3
aaa


Output

6


Input

3 3
aab


Output

11


Input

1 2
a


Output

1


Input

10 9
abacadefgh


Output

789

Note

For the first sample, the 6 possible strings T are: aab, aac, aba, aca, baa, caa. 

For the second sample, the 11 possible strings T are: aaa, aac, aba, abb, abc, aca, acb, baa, bab, caa, cab.

For the third sample, the only possible string T is b.
#include <bits/stdc++.h>
using namespace std;
void gt(int &a, int b) {
  if (a < b) a = b;
}
string n2s(int a) {
  stringstream ss;
  ss << a;
  return ss.str();
}
string getKey(int v, int h) { return n2s(v) + "-" + n2s(h); }
long long g[500005], f[500005], h[500005]{0};
int main() {
  int n, m;
  string T;
  cin >> n >> m;
  cin >> T;
  g[1] = 1;
  for (int i = 2; i <= n; i++) {
    g[i] = g[i - 1];
    if (T[i - 1] != T[i - 2]) g[i]++;
  }
  h[2] = 1;
  for (int i = 3; i <= n; i++) {
    h[i] = 1;
    if (T[i - 3] == T[i - 1]) h[i] += h[i - 1];
  }
  f[1] = m - 1;
  for (int i = 2; i <= n; i++) {
    f[i] = f[i - 1] + (m - 1) * g[i - 1];
    if (T[i - 1] != T[i - 2]) f[i] += i * (m - 1) - h[i];
  }
  cout << f[n] << endl;
  return 0;
}
