func_code_string: #include <bits/stdc++.h>   using namespace std;   set<string> st;   set<string>::iterator it1;   vector<int> dp2(20000, 0), dp3(20000, 0);   void solve(string s, int i, string prev) {     if (i < 1) return;     if (i == 1) {       string a = s.substr(i - 1, 2);       if (a != prev)         st.insert(a);       else         return;     } else {       string temp;       string a = s.substr(i - 1, 2);       string b = s.substr(i - 2, 3);       if (a != prev && !dp2[i]) {         dp2[i] = 1;         temp = a;         solve(s, i - 2, temp);       }       if (b != prev && !dp3[i]) {         dp3[i] = 1;         temp = b;         solve(s, i - 3, temp);       }     }     return;   }   int main() {     string str;     cin >> str;     if (str.size() < 7) {       cout << 0;       return 0;     }     string s(str.begin() + 5, str.end());     int n = s.size();     solve(s, n - 1,   );     for (int i = 0; i < n; i++) {       if (dp2[i]) st.insert(s.substr(i - 1, 2));       if (dp3[i]) st.insert(s.substr(i - 2, 3));     }     cout << st.size() << endl;     it1 = st.begin();     for (; it1 != st.end(); it1++) cout << *it1 << endl;     return 0;   }   