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 {
	public static void main(String[] args) {
		Solver solver = new Solver();
		solver.solve();
	}
}

class Solver {
	Scanner stdin = new Scanner(System.in);
	
	void solve() {
		int n = stdin.nextInt();
		int m = stdin.nextInt();
		String s = stdin.next();
		
		if (n == 1) {
			System.out.println(m - 1);
			return ;
		}
		long r = 1;
		char prec = s.charAt(0);
		for (int i = 1; i < n; i++) {
			if (prec != s.charAt(i))
				r++;
			prec = s.charAt(i);
		}
		char pprec = s.charAt(0);
		long alt = 0;
		long chain = 0;
		prec = s.charAt(1);
		for (int i = 2; i < n; i++) {
			if (pprec == s.charAt(i) && prec != pprec) {
				chain++;
			} else {
				alt += chain * (chain + 1) / 2;
				chain = 0;
			}
			pprec = prec;
			prec = s.charAt(i);
		}
		alt += chain * (chain + 1) / 2;
		System.out.println(r * n * (m - 1) - alt - r + 1);
	}
}