Олимпиадный тренинг

Задача . E. Покупка клавиатуры


Задача

Темы: битмаски дп *2200

У вас есть пароль, который вы часто набираете — строка \(s\) длины \(n\), состоящая из первых \(m\) букв латинского алфавита.

Из-за того, что вы много времени тратите на набор этого пароля, вы хотите купить новую клавиатуру.

Клавиатура — это перестановка первых \(m\) букв латинского алфавита. Например, если \(m = 3\), то существует всего шесть различных клавиатур: abc, acb, bac, bca, cab и cba.

Так как вы набираете пароль одним пальцем, вам нужно тратить время на перемещение этого пальца от одного символа пароля к другому. Время перемещения пальца от символа \(s_i\) к символу \(s_{i+1}\) равно дистанции между этими символами на клавиатуре. Суммарное потраченное время на набор пароля называется медлительностью.

Формально, медлительность клавиатуры равна \(\sum\limits_{i=2}^{n} |pos_{s_{i-1}} - pos_{s_i} |\), где \(pos_x\) — позиция символа \(x\) на клавиатуре.

Например, если \(s\) = aacabc, а клавиатура равна bac, то медлительность клавиатуры равна \(|pos_a - pos_a| + |pos_a - pos_c| + |pos_c - pos_a| + |pos_a - pos_b| + |pos_b - pos_c|\) = \(|2 - 2| + |2 - 3| + |3 - 2| + |2 - 1| + |1 - 3|\) = \(0 + 1 + 1 + 1 + 2 = 5\).

До того как купить клавиатуру, вы хотите знать ее минимально возможную медлительность.

Входные данные

Первая строка содержит два числа \(n\) и \(m\) (\(1 \le n \le 10^5, 1 \le m \le 20\)).

Вторая строка содержит строку \(s\) длины \(n\), состоящую только из первых \(m\) строчных букв латинского алфавита.

Выходные данные

Выведите одно число — минимально возможную медлительность клавиатуры.

Примечание

Первый тестовый пример разобран в условии.

Во втором тестовом примере медлительность любой клавиатуры равна \(0\).

В третьем тестовом одна из подходящих клавиатур — bacd.


Примеры
Входные данныеВыходные данные
1 6 3
aacabc
5
2 6 4
aaaaaa
0
3 15 4
abacabadabacaba
16

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя