#include <bits/stdc++.h>
using namespace std;
int n, k;
string s[2000];
vector<int> go(int lo, int hi, int b) {
  vector<int> um;
  for (int i = 0; i < hi - lo + 2; i++) {
    um.push_back(0);
  }
  if (hi - lo >= 1) {
    int j = lo;
    while ((int)s[lo].size() > b && j < hi && s[j + 1][b] == s[lo][b]) j++;
    vector<int> x = go(lo, j, b + 1);
    vector<int> y = go(j + 1, hi, b);
    for (int i = 0; i < (int)x.size(); i++) {
      x[i] += i * (i - 1) / 2;
    }
    for (int i = 0; i < (int)y.size(); i++) {
      for (int j = 0; j < (int)x.size(); j++) {
        um[i + j] = max(x[j] + y[i], um[i + j]);
      }
    }
  }
  return um;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) {
    cin >> s[i];
  }
  sort(s, s + n);
  vector<int> a = go(0, n - 1, 0);
  printf("%d\n", a[k]);
}
