#include <bits/stdc++.h>
using namespace std;
struct q {
  int top;
  string qq[110];
  void pop() {
    if (top > 0) top--;
  }
  void push(string a) { qq[++top] = a; }
  bool empty() {
    if (top == 0) return true;
    return false;
  }
  string front() {
    if (top > 0) return qq[top];
  }
};
long long n, k, ans;
string a, t, tt;
queue<string> qu;
set<string> p;
int main() {
  scanf("%lld %lld", &n, &k);
  cin >> a;
  p.insert(a);
  qu.push(a);
  while (!qu.empty()) {
    t = qu.front();
    qu.pop();
    for (int i = 0; i < t.size(); i++) {
      tt = t;
      tt.erase(i, 1);
      if (p.size() < k && !p.count(tt)) {
        p.insert(tt);
        qu.push(tt);
        ans += n - tt.size();
      }
    }
  }
  if (p.size() < k)
    printf("-1");
  else
    printf("%lld", ans);
  return 0;
}
