#include <bits/stdc++.h>
using namespace std;
const double pi = 3.14159265358979323846264338327950288419716939937511;
const double eps = 1e-9;
char ch_ch_ch[1 << 20];
inline string gs() {
  scanf("%s", ch_ch_ch);
  return string(ch_ch_ch);
}
inline string gl() {
  gets(ch_ch_ch);
  return string(ch_ch_ch);
}
inline int gi() {
  int x;
  scanf("%d", &x);
  return x;
}
const int inf = 1000000000;
int n, k;
int dp[2020][2020];
const int mod = 1000000007;
string s;
inline int R(int pos, int sum) {
  if (pos == -1) return sum == 0;
  return dp[pos][sum];
}
void solution() {
  n = gi();
  k = gi();
  s = gs();
  int cumLess;
  for (int sum = 0; sum <= k; ++sum) {
    cumLess = R(-1, sum);
    for (int pos = 0; pos < n; ++pos) {
      dp[pos][sum] = (dp[pos][sum] + (s[pos] - 'a') * 1ll * cumLess) % mod;
      for (int pref = 0; pos - pref >= 0; ++pref) {
        if (sum < (n - pos) * (pref + 1)) break;
        dp[pos][sum] = (dp[pos][sum] +
                        ('z' - s[pos]) * 1ll *
                            R(pos - pref - 1, sum - (n - pos) * (pref + 1))) %
                       mod;
      }
      cumLess = (cumLess + dp[pos][sum]) % mod;
    }
  }
  int res = cumLess;
  cout << res << endl;
}
int main(int argc, char** argv) {
  solution();
  return 0;
}
