func_code_string: #include <bits/stdc++.h>   using namespace std;   vector<int> prefix_function(string t, string s, int k) {     int m = (int)s.size();     s = t +  ?  + s;     int n = (int)s.length();     vector<int> pi(n);     for (int i = 1; i < n; ++i) {       int j = pi[i - 1];       while (j > 0 && s[i] != s[j]) j = pi[j - 1];       if (s[i] == s[j]) ++j;       pi[i] = j;     }     if (k >= (int)t.size()) {       for (int i = t.size() + 1, ii = 1; i < n; i++, ii++) {         if (pi[i] == t.size()) {           if (m - ii >= k) {             cout <<  Yes  << endl;             int x = ii - k + 1, y = ii + 1;             if (x <= 0) y += 1 - x, x += 1 - x;             cout << x <<     << y << endl;             exit(0);           }           int jj = ii - (int)t.size();           if (jj >= k) {             cout <<  Yes  << endl;             int x = jj - k + 1, y = jj + 1;             if (y > m - k + 1) x += m - k + 1 - y, y += m - k + 1 - y;             cout << x <<     << y << endl;             exit(0);           }         }       }     }     vector<int> occ(t.size() + 1, -1);     for (int i = t.size() + k; i < n; i++) {       int j = pi[i];       int idx = i - t.size() - 1;       while (occ[j] == -1) {         occ[j] = idx;         if (j == 0) break;         j = pi[j - 1];       }     }     return occ;   }   int main() {     ios::sync_with_stdio(0);     cin.tie(0);     int n, m, k;     cin >> n >> m >> k;     string s, t;     cin >> s >> t;     vector<int> L = prefix_function(t, s, k);     reverse(t.begin(), t.end());     reverse(s.begin(), s.end());     vector<int> R = prefix_function(t, s, k);     for (int i = 0; i < R.size(); i++) {       if (R[i] == -1) continue;       R[i] = n - 1 - R[i];     }     for (int l = 0; l <= m; l++) {       int r = m - l;       if (L[l] == -1 or R[r] == -1 or l > k or r > k) continue;       if (L[l] < R[r]) {         cout <<  Yes  << endl;         cout << L[l] - k + 1 + 1 <<     << R[r] + 1 << endl;         exit(0);       }     }     cout <<  No  << endl;     return 0;   }   