#include <bits/stdc++.h>
using namespace std;
const int MAXN = 500005;
int fail[MAXN], match[MAXN], found[2][MAXN], n, m, k;
int complete = 0;
void kmp(int first, string &p, string &t) {
  for (int i = 1, j = 0; i < p.size(); i++) {
    while (j && p[j] != p[i]) j = fail[j - 1];
    if (p[j] == p[i]) fail[i] = ++j;
  }
  found[first][0] = k;
  for (int i = 0, j = 0; i < t.size(); i++) {
    while (j && p[j] != t[i]) j = fail[j - 1];
    if (p[j] == t[i]) j++;
    if (i >= k - 1) {
      int x = j;
      while (found[first][x] == 1e9) {
        found[first][x] = i + 1;
        x = fail[x - 1];
      }
    }
    if (j == p.size()) {
      j = fail[j - 1];
      complete = 1;
    }
  }
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cin >> n >> m >> k;
  string a, b;
  cin >> a >> b;
  for (int i = 0; i < 2; i++)
    for (int j = 0; j < MAXN; j++) {
      found[i][j] = 1e9;
    }
  kmp(0, b, a);
  reverse(a.begin(), a.end());
  reverse(b.begin(), b.end());
  kmp(1, b, a);
  for (int i = 0; i <= k; i++) {
    int r = b.size() - i;
    if (r < 0) continue;
    if (r > k) continue;
    if (found[0][i] + found[1][r] > n) continue;
    cout << "Yes\n"
         << found[0][i] - k + 1 << " " << n - found[1][r] + 1 << endl;
    exit(0);
  }
  if (complete)
    cout << "Yes\n" << 1 << ' ' << n - k + 1;
  else
    cout << "No";
  return 0;
}
