int n, m, l, a[499500], b[499500], c[499500], z; char s[1d3][51]; wgraph g; { rd(n, l, s(n)); m = n * (n - 1) / 2; rep(i, n) rep(j, i + 1, n) { c[z] += s[i][0..l] != s[j][0..l]; a[z] = i; b[z] = j; z++; } g.setEdge(n, m, a, b, c); wt(g.MST_Prim_cost()); }