func_code_string: #include <bits/stdc++.h>   using namespace std;   char s[2005];   const int mod = 1e9 + 7;   int n, k, t[2005];   int a[2005][2005], b[2005][2005];   int mp(const int &a, const int &b) { return (int)(1ll * a * b % mod); }   int add(const int &a, const int &b) { return (a + b) % mod; }   int main() {     scanf( %d %d %s , &n, &k, s);     int i, j, u, v, d, e;     for (i = 0; i < n; i++) t[i + 1] = s[i] -  a ;     for (i = 0; i <= n + 1; i++) a[i][0] = 1;     for (i = n; i > 0; i--) {       v = n - i;       for (j = 0; j <= k; j++) {         b[i][j] = add(b[i + 1][j], mp(t[i], a[i + 1][j]));         a[i][j] = add(a[i][j], b[i][j]);         for (u = 0; u <= v / 2; u++) {           e = j - (v - u + 1) * (u + 1);           if (e < 0) break;           if (2 * u == v)             a[i][j] = add(mp(25 - t[i + u], a[i + u + 1][e]), a[i][j]);           else {             a[i][j] = add(mp(25 - t[i + u], a[i + u + 1][e]), a[i][j]);             a[i][j] = add(mp(25 - t[i + v - u], a[i + v - u + 1][e]), a[i][j]);           }         }       }     }     printf( %d n , a[1][k]);   }   