func_code_string: #include <bits/stdc++.h>   using namespace std;   long long MOD = 1000000007;   long long dp[2001][2001];   long long dp1[2001][2001];   int main() {     int N, K;     string S;     cin >> N >> K >> S;     memset(dp, 0, sizeof(dp));     memset(dp1, 0, sizeof(dp1));     dp[0][0] = dp1[0][0] = 1;     for (int n = 1; n <= N; ++n) {       for (int k = 0; k <= K; ++k) {         dp[n][k] = dp1[n - 1][k] * (long long)(S[n - 1] -  a ) % MOD;       }       for (int i = 0; i < n; ++i) {         int delta = (n - i) * (N - n + 1);         for (int k = 0; k + delta <= K; ++k) {           dp[n][k + delta] += dp[i][k] * (long long)( z  - S[n - 1]) % MOD;           dp[n][k + delta] %= MOD;         }       }       for (int k = 0; k <= K; ++k) {         dp1[n][k] = (dp1[n - 1][k] + dp[n][k]) % MOD;       }     }     cout << dp1[N][K] << endl;     return 0;   }   