#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
inline void add(long long& a, long long b) {
  a += b;
  if (a >= mod) a -= mod;
}
int n, k;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> k;
  string st;
  cin >> st;
  for (int i = 0; i < n; i++) st[i] -= 'a';
  vector<vector<long long> > dpl(n + 2, vector<long long>(2 * k + 1, 0)),
      dpb(n + 2, vector<long long>(2 * k + 79, 0));
  dpl[n - 1][0] = st[n - 1] + 1;
  dpb[n - 1][1] = 25 - st[n - 1];
  for (int i = n - 1; i > 0; i--) {
    for (int s = 0; s <= k; s++) {
      for (int j = i - 1; j >= 0 && s + (i - j - 1) * (n - i) <= k; j--) {
        long long cnt = (i - j - 1) * (n - i);
        if (cnt + (n - j) <= k)
          add(dpb[j][s + cnt + (n - j)],
              (dpb[i][s] * 1ll * (25 - st[j])) % mod);
        add(dpl[j][s + cnt], (dpb[i][s] * 1ll * (st[j])) % mod);
      }
      if (i * (n - i) <= k) add(dpl[0][s + i * (n - i)], dpb[i][s]);
    }
    for (int s = 0; s <= k; s++) {
      add(dpl[i - 1][s], (dpl[i][s] * 1ll * (st[i - 1] + 1)) % mod);
      if (s + (n - i + 1) <= k)
        add(dpb[i - 1][s + (n - i + 1)],
            (dpl[i][s] * 1ll * (25 - st[i - 1])) % mod);
    }
  }
  cout << (dpl[0][k] + dpb[0][k]) % mod << "\n";
  return 0;
}
