func_code_string: #include <bits/stdc++.h>   using namespace std;   string a, ar, b, fi;   int i, j, ans, o1[3000], o2[3000];   int main() {     ios_base::sync_with_stdio(0);     cin >> a >> b;     ar = a;     reverse(ar.begin(), ar.end());     for (; i < b.size(); ++i) {       if (a.find(b[i]) == string::npos) {         cout <<  -1 n ;         return 0;       }     }     for (i = 0; i < b.size();) {       for (j = 1; i + j <= b.length(); ++j) {         fi = b.substr(i, j);         if (a.find(fi) == string::npos && ar.find(fi) == string::npos) {           if (a.find(b.substr(i, j - 1)) == string::npos) {             o1[ans] = a.length() - ar.find(b.substr(i, j - 1));             o2[ans] = a.length() - ar.find(b.substr(i, j - 1)) - j + 2;           } else {             o1[ans] = a.find(b.substr(i, j - 1)) + 1;             o2[ans] = a.find(b.substr(i, j - 1)) + j - 1;           }           i += j - 1;           ++ans;           break;         } else if (i + j == b.length()) {           if (a.find(b.substr(i, j)) == string::npos) {             o1[ans] = a.length() - ar.find(b.substr(i, j));             o2[ans] = a.length() - ar.find(b.substr(i, j)) - j + 1;           } else {             o1[ans] = a.find(b.substr(i, j)) + 1;             o2[ans] = a.find(b.substr(i, j)) + j;           }           i += j;           ++ans;         }       }     }     cout << ans <<   n ;     for (i = 0; i < ans; ++i) cout << o1[i] <<     << o2[i] <<   n ;   }   