Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Sắp phím

Dễ Quy hoạch động trạng thái

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 2.0s Giới hạn thời gian

Sau khi tìm ra mật khẩu là một xâu \(S\) có \(N\) kí tự, An quyết định mua một bàn phím chuyên dụng để nhập mật khẩu này. Do mật khẩu chỉ dùng \(M\) chữ cái đầu tiên trong bảng chữ cái tiếng Anh nên bàn phím chỉ cần \(M\) phím tương ứng. Do sở thích nên An bố trí tất cả \(M\) phím lên cùng một hàng, ví dụ với \(M\) \(=\) \(3\), có \(6\) cách bố trí khác nhau là : \(abc\), \(acb\), \(bac\), \(bca\), \(cab\), \(cba\).

An có thói quen nhập mật khẩu bằng đầu chiếc bút để ấn phím nên thời gian di chuyển từ \(S_{i}\) sang \(S_{i + 1}\) sẽ bằng khoảng cách giữa hai kí tự này trên bàn phím. Như vậy, tổng thời gian nhập là \(\sum_{i = 1}^{n - 1} (pos(S_{i}) - pos(S_{i + 1}))\), trong đó \(pos(c)\) là vị trí của kí tự \(c\) trên bàn phím. Ví dụ nếu xâu \(S\) là xâu \(aacabc\) và bàn phím được bố trí là \(bac\) thì tổng thời gian di chuyển là \(|2 - 2| + |2 - 3| + |3 - 2| + |1 - 2| + |1 - 3| = 5\).

Yêu cầu: Hãy tìm cách bố trí bàn phím sao cho tổng thời gian di chuyển là nhỏ nhất.

Input

Dòng đầu ghi \(2\) số nguyên dương \(N\) và \(M\) cách nhau một dấu cách.

Dòng thứ hai ghi \(N\) kí tự của xâu \(S\).

Output

Tổng thời gian di chuyển nhỏ nhất.

Example

Test 1

Input
6 3
aacabc
Output
5

Scoring

Có \(20\%\) số test có \(N \leq 100\), \(M \leq 2\).

Có \(20\%\) số test có \(N \leq 100\), \(M \leq 10\).

Có \(30\%\) số test có \(N \leq 100000\), \(M \leq 10\).

Có \(30\%\) số test có \(N \leq 100000\), \(M \leq 20\).

Bình luận

Chưa có bình luận nào.