func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 5, M = 20;   int n, m;   string s;   int pos[(1 << M) - 1], a[M + 5][M + 5], f[(1 << M) + 5], g[(1 << M) + 5][M + 5];   int main() {     memset(a, 0, sizeof(a));     memset(f, 0x3f, sizeof(f));     memset(g, 0, sizeof(g));     cin >> n >> m >> s;     for (int i = 0; i < n - 1; i++) {       a[s[i] -  a ][s[i + 1] -  a ]++;       a[s[i + 1] -  a ][s[i] -  a ]++;     }     for (int i = 0; i < m; i++) pos[1 << i] = i;     for (int i = 1; i < (1 << m); i++)       for (int j = 0; j < m; j++) {         int k = i & (-i);         g[i][j] = g[i ^ k][j] + a[j][pos[k]];       }     f[0] = 0;     for (int i = 0; i < (1 << m) - 1; i++) {       long long sum = 0;       for (int j = 0; j < m; j++)         if ((i & (1 << j)) == 0) sum += g[i][j];       for (int j = 0; j < m; j++)         if ((i & (1 << j)) == 0)           f[i | (1 << j)] = min(f[i] + sum, (long long)f[i | (1 << j)]);     }     cout << f[(1 << m) - 1];     return 0;   }   