func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 2e5 + 5;   const int INF = 1e9;   const long long mod = 1e9 + 7;   bool dp[105][55][2][2][205];   string s;   int n, sz, realans;   int offset(int x) { return x + 100; }   bool f(int idx, int sisa, bool flip, bool arah, int ans) {     if (idx == sz + 1) {       if (sisa == 0) {         realans = max(realans, abs(ans));       }       return 1;     }     bool &res = dp[idx][sisa][flip][arah][offset(ans)];     if (res == 1) return res;     char now = s[idx - 1];     if (flip) {       if (now ==  F )         now =  T ;       else         now =  F ;     }     if (now ==  F ) {       res = f(idx + 1, sisa, 0, arah, ans + (arah ? 1 : -1));       if (sisa) res = f(idx, sisa - 1, !flip, arah, ans);     } else if (now ==  T ) {       res = f(idx + 1, sisa, 0, !arah, ans);       if (sisa) res = f(idx, sisa - 1, !flip, arah, ans);     }     return res = 1;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     cin >> s;     cin >> n;     sz = s.size();     f(1, n, 0, 1, 0);     cout << realans << endl;   }   