#include <bits/stdc++.h>
using namespace std;
vector<int> magic(string t, string s, int sk) {
  int tl = t.length();
  string x = t + "@" + s;
  int n = x.length();
  vector<int> pi(n), r(sk + 1, -1);
  r[0] = sk - 1;
  for (int i = 1, k = 0; i < n; ++i) {
    while (k && x[i] != x[k]) k = pi[k - 1];
    k += x[i] == x[k];
    pi[i] = k;
    if (i >= tl + sk) {
      while (k > sk) k = pi[k - 1];
      for (int j = k; r[j] == -1; j = pi[j - 1]) r[j] = i - tl - 1;
    }
  }
  return r;
}
vector<int> pi_function(const string &s) {
  int n = s.length();
  vector<int> pi(n);
  for (int i = 1, k = 0; i < n; ++i) {
    while (k && s[i] != s[k]) k = pi[k - 1];
    k += s[i] == s[k];
    pi[i] = k;
  }
  return pi;
}
vector<int> kmp(const string &text, const string &patt) {
  int n = text.length(), m = patt.length();
  vector<int> ans, pi = pi_function(patt);
  for (int i = 0, k = 0; i < n; ++i) {
    while (k && text[i] != patt[k]) k = pi[k - 1];
    k += text[i] == patt[k];
    if (k == m) {
      ans.push_back(i - k + 1);
      k = pi[k - 1];
    }
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0);
  int n, m, k;
  string s, t;
  cin >> n >> m >> k >> s >> t;
  if (m <= k) {
    auto p = kmp(s, t);
    for (auto i : p) {
      int l = max(k, i + m);
      if (l + k <= n) {
        cout << "Yes\n" << l - k + 1 << " " << l + 1 << "\n";
        return 0;
      }
      int r = min(i + 1, n - k + 1);
      if (r - 1 >= k) {
        cout << "Yes\n" << r - k << " " << r << "\n";
        return 0;
      }
    }
  }
  auto l = magic(t, s, k);
  reverse(t.begin(), t.end());
  reverse(s.begin(), s.end());
  auto r = magic(t, s, k);
  for (auto &i : r)
    if (i != -1) i = n - 1 - i;
  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\n" << l[i] - k + 2 << " " << r[m - i] + 1 << "\n";
      return 0;
    }
  cout << "No\n";
  return 0;
}
