#include <bits/stdc++.h>
using namespace std;
const int maxn = 100002;
long long a[maxn];
void merg(long long b1, long long f1, long long b2, long long f2) {
  long long e1[maxn], e2[maxn];
  for (long long i = b1; i <= f1; i++) {
    e1[i] = a[i];
  }
  for (long long i = b2; i <= f2; i++) {
    e2[i] = a[i];
  }
  for (long long i = b1; i <= f2; i++) {
    if (b2 > f2 || (e1[b1] >= e2[b2] && b1 <= f1)) {
      a[i] = e1[b1];
      b1++;
    } else {
      a[i] = e2[b2];
      b2++;
    }
  }
}
void mergsort(long long b, long long f) {
  long long q = (b + f) / 2;
  if ((f - b) <= 0) {
    return;
  }
  mergsort(b, q);
  mergsort(q + 1, f);
  merg(b, q, q + 1, f);
}
int main() {
  string t;
  long long n, k;
  long long ans = 0;
  cin >> n >> k;
  cin >> t;
  long long p = 1;
  for (long long i = 'A'; i <= 'z'; i++) {
    for (long long j = 0; j < n; j++) {
      if (i == t[j]) {
        a[p]++;
      }
    }
    p++;
  }
  mergsort(1, 26);
  long long i = 1;
  while (1) {
    if (k > a[i]) {
      ans += a[i] * a[i];
      k -= a[i];
    } else {
      ans += (k * k);
      cout << ans;
      return 0;
    }
    i++;
    if (i == 27) {
      cout << ans;
      return 0;
    }
  }
}
