#include <bits/stdc++.h>
using namespace std;
const int N = 2010;
int n, K;
char x[N];
inline int g(int j, int i) { return (n - i) * (i - j); }
int dp[N][N], mod = 1e9 + 7;
int add(int a, int b) {
  a += b;
  if (a >= mod) a -= mod;
  return a;
}
int mul(long long a, int b) {
  a *= b;
  if (a >= mod) a %= mod;
  return a;
}
int acc[N][N];
int main() {
  scanf("%d", &n), scanf("%d", &K);
  scanf(" %s", x);
  dp[n][0] = 1;
  acc[n - 1][0] = x[n - 1] - 'a';
  for (int i = n - 1; i >= 0; i--) {
    for (int k = 0; k <= K; k++) {
      if (!k) dp[i][k] = 1;
      dp[i][k] = add(dp[i][k], acc[i][k]);
      int j;
      for (j = i; j < n; j++) {
        if (g(i - 1, j) > k) break;
        dp[i][k] = add(dp[i][k], mul(dp[j + 1][k - g(i - 1, j)], ('z' - x[j])));
      }
      for (int z = n - 1; z > j; z--) {
        if (g(i - 1, z) > k) break;
        dp[i][k] = add(dp[i][k], mul(dp[z + 1][k - g(i - 1, z)], ('z' - x[z])));
      }
      if (i) acc[i - 1][k] = add(acc[i][k], mul(dp[i][k], (x[i - 1] - 'a')));
    }
  }
  cout << dp[0][K] << endl;
}
