#include <bits/stdc++.h>
using namespace std;
const int N = 2222;
const int MOD = 1000000007;
long long gt[N][N], lt[N][N], eq[N][N], su[N];
char s[N];
int main() {
  int n, k;
  cin >> n >> k;
  cin >> s;
  reverse(s, s + n);
  gt[0][1] = 'z' - s[0];
  lt[0][0] = s[0] - 'a';
  eq[0][0] = 1;
  su[0] = 1;
  for (int i = 1; i < n; ++i) {
    for (int j = 0; j + i + 1 <= k; ++j) {
      gt[i][j + i + 1] += gt[i - 1][j];
      gt[i][j + i + 1] += lt[i - 1][j];
      gt[i][j + i + 1] += eq[i - 1][j];
      gt[i][j + i + 1] *= 'z' - s[i];
      gt[i][j + i + 1] %= MOD;
    }
    for (int j = 0; j <= k; ++j) {
      lt[i][j] += gt[i - 1][j];
      lt[i][j] += lt[i - 1][j];
      lt[i][j] += eq[i - 1][j];
      lt[i][j] *= s[i] - 'a';
      lt[i][j] %= MOD;
      su[j] = (su[j] + lt[i - 1][j]) % MOD;
    }
    for (int h = i - 1; h >= 0; --h) {
      int dd = (i - h) * (h + 1);
      if (dd > k) continue;
      for (int j = 0; j + dd <= k; ++j) eq[i][j + dd] += gt[h][j];
    }
    for (int j = 0; j <= k; ++j) eq[i][j] = (eq[i][j] + su[j]) % MOD;
  }
  long long ans = gt[n - 1][k] + lt[n - 1][k] + eq[n - 1][k];
  cout << ans % MOD << endl;
  return 0;
}
