#include <bits/stdc++.h>
using namespace std;
const int maxn = 2005;
const int mod = 1000000007;
int add(int x, int y) { return (x + y) % mod; }
int mult(int x, int y) { return (long long)x * y % mod; }
int n, k;
int dp[maxn][maxn][3];
string a;
inline void update(int &x, int val) { x = add(x, val); }
int main(void) {
  ios::sync_with_stdio(false);
  cin >> n >> k >> a;
  reverse(a.begin(), a.end());
  dp[0][0][0] = 1;
  for (int i = 0; i < n; i++)
    for (int j = 0; j <= k; j++)
      for (int m = 0; m < 2; m++) {
        int curr = dp[i][j][m];
        update(dp[i + 1][j][0], mult(curr, a[i] - 'a'));
        if (m == 0) update(dp[i + 1][j][0], curr);
        int sum = 0;
        for (int l = i; l < n; l++) {
          sum += i + 1;
          if (j + sum > k) break;
          update(dp[l + 1][j + sum][1], mult(curr, 'z' - a[i]));
        }
      }
  cout << add(dp[n][k][0], dp[n][k][1]) << endl;
  return 0;
}
