func_code_string: #include <bits/stdc++.h>   using namespace std;   const int inf = (1 << 30);   int dp[110][700][40], g[35][35];   string s;   int solve(int p, int k, int q) {     if (p < 0 && k >= 0) return 0;     if (p < 0 || k < 0) return -inf;     if (dp[p][k][q] != -1) return dp[p][k][q];     char ch = q +  a ;     int ans = -inf;     for (char curr =  a ; curr <=  z ; curr++) {       int dk = 0;       if (curr != s[p]) dk++;       int x = solve(p - 1, k - dk, curr -  a );       if (x == -inf) continue;       ans = max(ans, x + g[curr -  a ][q]);     }     return dp[p][k][q] = ans;   }   int main() {     fill(&dp[0][0][0], &dp[0][0][0] + 110 * 700 * 40, -1);     int k;     cin >> s >> k;     int t;     cin >> t;     for (int i = 0; i < t; i++) {       string tmp;       char c1, c2;       int w;       cin >> c1 >> c2 >> w;       g[c1 -  a ][c2 -  a ] = w;     }     cout << solve(s.size() - 1, k, 30);     return 0;   }   