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.
import java.util.Scanner;

public class Main {
	private void solve() {
		Scanner scanner = new Scanner(System.in);
		int N = scanner.nextInt();
		int M = scanner.nextInt();
		char[] string = scanner.next().toCharArray();

		// 1文字を場所を変えずに入れ替えた文字列の数を出す
		long ans = (long) N * (M - 1);

		/*
		 * i文字目を消去したN-1文字の文字列のどこかに1文字挿入した文字列の数を出す．
		 * N*M種類のうち，N-1個はこの中で重複し，1個はstringと同じなので， N*M-(N-1)-1 = N*(M-1)となる．
		 */
		for (int i = 0; i < N - 1; i++) {
			if (string[i] != string[i + 1]) {
				ans += (long) N * (M - 1);
			}
		}

		int i = 0, j = 0;
		while (i < N - 1) {
			if (string[i] == string[i + 1]) {
				i++;
				continue;
			}
			j = Math.max(j, i + 1);
			char c1 = string[i];
			char c2 = string[i + 1];
			while (j < N && string[j] == ((j - i) % 2 == 0 ? c1 : c2)) {
				j++;
			}
			ans -= j - i - 1;
			i++;
		}

		System.out.println(ans);
		scanner.close();
	}

	public static void main(String[] args) {
		new Main().solve();
	}
}
