#include <bits/stdc++.h>
#pragma GCC optimize("O3,inline,unroll-loops")
using namespace std;
int a[2020], b[2020];
char s[2020];
int f[2020][2020], g[2020][2020];
inline int Mod(int x) { return x + ((x >> 31) & 1000000007); }
void Modadd(int &x, int y) {
  x = Mod(x + y - 1000000007);
  return;
}
int main(void) {
  int n, k;
  int i, j, t, p;
  scanf("%d %d %s", &n, &k, s + 1);
  for (i = 1; i <= n; i++) {
    a[i] = s[i] - 97;
    b[i] = 25 - a[i];
  }
  a[n + 1] = 1;
  f[0][0] = 1;
  for (i = 0; i <= n + 1; i++) {
    if (i)
      for (j = 0; j <= k; j++) Modadd(g[i][j], g[i - 1][j]);
    for (j = 0; j <= k; j++) {
      Modadd(f[i][j], (long long)g[i][j] * a[i] % 1000000007);
      Modadd(g[i + 1][j], f[i][j]);
      for (t = i + 1; t <= n + 1 && j + (n - t + 1) * (t - i) <= k; t++)
        Modadd(f[t][j + (n - t + 1) * (t - i)],
               (long long)f[i][j] * b[t] % 1000000007);
      for (p = n + 1; p > t && j + (n - p + 1) * (p - i) <= k; p--)
        Modadd(f[p][j + (n - p + 1) * (p - i)],
               (long long)f[i][j] * b[p] % 1000000007);
    }
  }
  printf("%d\n", f[n + 1][k]);
  return 0;
}
