#include <bits/stdc++.h>
using namespace std;
const int N = 600000;
int n, m, k;
int pi[2][N], refr[2][N], fix[2][N], p[2][N], seg[2][4 * N];
char s[N], t[N];
void kmp() {
  int i, j;
  for (i = 0; i < m; i++) {
    pi[0][i] = -1;
    if (i == 0) continue;
    for (j = pi[0][i - 1];;) {
      if (t[j + 1] == t[i]) {
        pi[0][i] = j + 1;
        break;
      }
      if (j == -1) break;
      j = pi[0][j];
    }
  }
  for (i = m - 1; i >= 0; i--) {
    pi[1][i] = m;
    if (i == m - 1) continue;
    for (j = pi[1][i + 1];;) {
      if (t[j - 1] == t[i]) {
        pi[1][i] = j - 1;
        break;
      }
      if (j == m) break;
      j = pi[1][j];
    }
  }
}
void rf() {
  int i, j;
  for (i = 0, j = 0; i < n; i++) {
    for (;;) {
      if (t[j] == s[i]) {
        refr[0][i] = j;
        j++;
        break;
      }
      if (j == 0) {
        refr[0][i] = -1;
        break;
      }
      j = pi[0][j - 1] + 1;
    }
    if (j == -1) refr[0][i] = j, j++;
  }
  for (i = n - 1, j = m - 1; i >= 0; i--) {
    for (;;) {
      if (t[j] == s[i]) {
        refr[1][i] = j;
        j--;
        break;
      }
      if (j == m - 1) {
        refr[1][i] = m;
        break;
      }
      j = pi[1][j + 1] - 1;
    }
  }
}
void _p() {
  int i, j, u;
  for (i = 0; i < n; i++) {
    p[0][i] = i - 2, p[1][i] = i + 2;
  }
  for (i = n - 1; i >= 0; i--) {
    for (j = refr[0][i]; ~j;) {
      u = i - j;
      if (p[0][u] != u - 2) break;
      p[0][u] = i;
      j = pi[0][j];
    }
  }
  for (i = 0; i < n; i++) {
    for (j = refr[1][i]; j != m;) {
      u = i + m - 1 - j;
      if (p[1][u] != u + 2) break;
      p[1][u] = i;
      j = pi[1][j];
    }
  }
}
void delay(int t, int p) {
  if (t == 0) {
    seg[t][2 * p + 1] = min(seg[t][2 * p + 1], seg[t][p]);
    seg[t][2 * p + 2] = min(seg[t][2 * p + 2], seg[t][p]);
  } else {
    seg[t][2 * p + 1] = max(seg[t][2 * p + 1], seg[t][p]);
    seg[t][2 * p + 2] = max(seg[t][2 * p + 2], seg[t][p]);
  }
}
void add(int l, int r, int w, int t, int p, int lb, int rb) {
  if (l <= lb && r >= rb) {
    if (t == 0)
      seg[t][p] = min(seg[t][p], w);
    else
      seg[t][p] = max(seg[t][p], w);
    return;
  }
  delay(t, p);
  int mid = (lb + rb) / 2;
  if (l <= (lb + rb) / 2) add(l, r, w, t, p * 2 + 1, lb, mid);
  if (r > (lb + rb) / 2) add(l, r, w, t, p * 2 + 2, mid + 1, rb);
}
void addseg(int l, int r, int p, int t) {
  if (l > r) return;
  add(l, r, p, t, 0, 0, m);
}
void relax(int lb, int rb, int p) {
  if (lb == rb) {
    if (seg[0][p] == n)
      fix[0][lb] = n;
    else
      fix[0][lb] = seg[0][p] - k + lb;
    if (seg[1][p] == -1)
      fix[1][lb] = -1;
    else
      fix[1][lb] = seg[1][p] + k - lb;
    return;
  }
  delay(0, p);
  delay(1, p);
  int mid = (lb + rb) / 2;
  relax(lb, mid, 2 * p + 1);
  relax(mid + 1, rb, 2 * p + 2);
}
void init(int lb, int rb, int p) {
  seg[0][p] = n, seg[1][p] = -1;
  if (lb == rb) {
    return;
  }
  int mid = (lb + rb) / 2;
  init(lb, mid, 2 * p + 1);
  init(mid + 1, rb, 2 * p + 2);
}
void fx() {
  int i;
  init(0, m, 0);
  for (i = 0; i < n; i++) {
    addseg(max(0, k - i), min(k, p[0][i] - i + 1), i, 0);
    addseg(max(0, i - n + k + 1), min(k, i - p[1][i] + 1), i, 1);
  }
  relax(0, m, 0);
}
bool match() {
  int i;
  for (i = 0; i < n; i++) {
    if (refr[0][i] == m - 1) {
      if (max(i - k + 1, 0) <= min(i - m + 1, n - k)) {
        if (min(i - m + 1, n - k) >= k) {
          printf("Yes\n%d %d\n", 1, 1 + min(i - m + 1, n - k));
          return 1;
        }
        if (max(i - k + 1, 0) <= n - 2 * k) {
          printf("Yes\n%d %d\n", max(i - k + 1, 0) + 1, n - k + 1);
          return 1;
        }
      }
    }
  }
  return 0;
}
bool check() {
  int i;
  for (i = 1; i < m; i++) {
    if (~fix[1][m - i] && fix[0][i] != n &&
        fix[1][m - i] - fix[0][i] >= 2 * k - 1) {
      printf("Yes\n%d %d\n", fix[0][i] + 1, fix[1][m - i] - k + 2);
      return 1;
    }
  }
  return 0;
}
int main() {
  scanf("%d%d%d", &n, &m, &k);
  scanf("%s%s", s, t);
  kmp();
  rf();
  if (match()) return 0;
  _p();
  fx();
  if (check()) return 0;
  printf("No\n");
  return 0;
}
