#include <bits/stdc++.h>
using ll = long long;
const int N = 5e5 + 5;
using namespace std;
int n, m, k;
vector<int> build_kmp(string s, string t, bool check = false) {
  vector<int> t_match(((int)t.size()) + 1, 0);
  for (int i = (2); i <= (((int)t.size())); ++i) {
    int c = t_match[i - 1];
    while (c > 0 && t[c] != t[i - 1]) c = t_match[c];
    if (t[c] == t[i - 1]) ++c;
    t_match[i] = c;
  }
  vector<int> s_match(((int)s.size()) + 1, 0);
  for (int i = (1); i <= (((int)s.size())); ++i) {
    int c = s_match[i - 1];
    while (c > 0 && t[c] != s[i - 1]) c = t_match[c];
    if (t[c] == s[i - 1]) ++c;
    if (c == m && check) {
      int t = max(i, k);
      if (n - t >= k && t - k + 1 <= i - m + 1) {
        cout << "Yes" << endl;
        cout << t - k + 1 << " " << t + 1 << endl;
        exit(0);
      }
      t = min(n - k, i - m);
      if (t >= k && i <= t + k) {
        cout << "Yes" << endl;
        cout << t - k + 1 << " " << t + 1 << endl;
        exit(0);
      }
    }
    s_match[i] = c;
  }
  vector<int> best(((int)t.size()) + 1, -1);
  for (int i = (k); i <= (((int)s.size())); ++i) {
    int c = s_match[i];
    for (; best[c] == -1; c = t_match[c]) best[c] = i;
  }
  return best;
}
int main() {
  string s, t;
  cin >> n >> m >> k >> s >> t;
  auto L = build_kmp(s, t, true);
  reverse((s).begin(), (s).end());
  reverse((t).begin(), (t).end());
  auto R = build_kmp(s, t);
  for (int i = (0); i <= (m); ++i)
    if (R[i] != -1) R[i] = n - R[i] + 1;
  for (int i = (0); i <= (m); ++i)
    if (i <= k && m - i <= k && L[i] != -1 && R[m - i] != -1 &&
        L[i] < R[m - i]) {
      cout << "Yes" << endl;
      cout << L[i] - k + 1 << " " << R[m - i] << endl;
      return 0;
    }
  cout << "No" << endl;
  return 0;
}
