#include <bits/stdc++.h>
using namespace std;
template <class T, class L>
inline bool smax(T &x, L y) {
  return x < y ? (x = y, 1) : 0;
}
template <class T, class L>
inline bool smin(T &x, L y) {
  return y < x ? (x = y, 1) : 0;
}
const int maxn = 3e3 + 17, mod = 1e9 + 7;
int n, k;
string s;
long long dp[maxn][maxn], sum[maxn][maxn], ans;
int main() {
  ios::sync_with_stdio(0), cin.tie(0);
  cin >> n >> k >> s;
  sum[0][0] = dp[0][0] = 1;
  for (int i = 0; i < n; (ans += dp[++i][k]) %= mod)
    for (int j = 0; j <= k; j++) {
      (dp[i + 1][j] += sum[i][j] * (s[i] - 'a')) %= mod;
      for (int l = 0; l <= i && (l + 1) * (n - i) <= j; l++)
        (dp[i + 1][j] += dp[i - l][j - (l + 1) * (n - i)] * ('z' - s[i])) %=
            mod;
      (sum[i + 1][j] += sum[i][j] + dp[i + 1][j]) %= mod;
    }
  cout << ans + (k == 0) << '\n';
}
