#include <bits/stdc++.h>
using namespace std;
struct node {
  char c;
  char nc;
  int d;
  int id;
  node() { ; }
  node(char _c, char _nc, int _d, int _id) : c(_c), nc(_nc), d(_d), id(_id) {
    ;
  }
  bool friend operator<(node a, node b) { return a.d < b.d; }
};
node d[100000 + 10];
char output[100000 + 10];
int main() {
  int n, k;
  scanf("%d%d", &n, &k);
  string s;
  cin >> s;
  long long int sum = 0;
  for (int i = 0; i < n; i++) {
    if (s[i] - 'a' > 'z' - s[i])
      d[i] = node(s[i], 'a', s[i] - 'a', i);
    else
      d[i] = node(s[i], 'z', 'z' - s[i], i);
    sum += max(s[i] - 'a', 'z' - s[i]);
  }
  sort(d, d + n);
  if (k > sum)
    cout << "-1";
  else {
    long long int tsum = 0;
    for (int i = 0; i < n; i++) {
      if (tsum + d[i].d >= k) {
        if (d[i].nc == 'a')
          output[d[i].id] = d[i].c - (k - tsum);
        else
          output[d[i].id] = d[i].c + (k - tsum);
        tsum = k;
      } else {
        output[d[i].id] = d[i].nc;
        tsum += d[i].d;
      }
    }
    for (int i = 0; i < n; i++) {
      cout << output[i];
    }
  }
  return 0;
}
