#include <bits/stdc++.h>
using namespace std;
using ll = long long int;
#define inf 1000000000000000LL
#define mod 1000000007LL
#define FOR(i,a,b) for(int i = a; i < b; i++)
const ll Mod1 = 1000000007LL;
const ll Mod2 = 1000000009LL;
const ll Base = 271LL;
struct hashed_string{
vector <ll> prefix1, prefix2;
vector <ll> pow1, pow2;
ll n;
hashed_string(string s){
n = s.size();
prefix1.assign(n, 0);
prefix2.assign(n, 0);
pow1.assign(n + 1, 0);
pow2.assign(n + 1, 0);
pow1[0] = 1;
pow2[0] = 1;
for (int i = 1; i <= n; i++){
pow1[i] = pow1[i - 1] * Base % Mod1;
pow2[i] = pow2[i - 1] * Base % Mod2;
}
for (int i = 0; i < n; i++){
ll val = s[i] - 'a' + 1;
prefix1[i] = ((i ? prefix1[i - 1] * Base : 0) + val) % Mod1;
prefix2[i] = ((i ? prefix2[i - 1] * Base : 0) + val) % Mod2;
}
}
pair<ll,ll> get_hash(ll l, ll r){
ll h1 = prefix1[r];
ll h2 = prefix2[r];
if (l >= 1){
h1 = (h1 - prefix1[l - 1] * pow1[r - l + 1] % Mod1 + Mod1) % Mod1;
h2 = (h2 - prefix2[l - 1] * pow2[r - l + 1] % Mod2 + Mod2) % Mod2;
}
return {h1, h2};
}
};
void solve() {
ll n,m,x; string s1,s2;
cin >> n >> s1 >> m >> s2 >> x;
hashed_string v = hashed_string(s1);
hashed_string g = hashed_string(s2);
vector <vector <ll>> dp(n+1, vector <ll>(x+1, -1));
for (int i = 0; i <= n; i++){
for (int j = x; j >= 0; j--){
if (i >= 1)
dp[i][j] = max(dp[i][j], dp[i-1][j]);
if (dp[i][j] == m - 1 || i == n || j == x) continue;
ll lo = dp[i][j] + 1;
ll hi = min(m - 1, dp[i][j] + n - i);
while (lo < hi){
ll mid = (lo + hi + 1) / 2;
if (g.get_hash(dp[i][j] + 1, mid) == v.get_hash(i, i + mid - dp[i][j] - 1)){
lo = mid;
}
else{
hi = mid - 1;
}
}
if (g.get_hash(dp[i][j] +1, lo) == v.get_hash(i, i + lo - dp[i][j] - 1)){
dp[i + lo - dp[i][j]][j + 1] = max(dp[i + lo - dp[i][j]][j + 1], lo);
}
}
}
ll answ = -1;
for (int i = 0; i <= x; i++){
answ = max(answ, dp[n][i]);
}
cout << (answ == m - 1 ? "YES" : "NO") << "\n";
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
ll t = 1;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nIGludDsKI2RlZmluZSBpbmYgMTAwMDAwMDAwMDAwMDAwMExMCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDdMTAojZGVmaW5lIEZPUihpLGEsYikgZm9yKGludCBpID0gYTsgaSA8IGI7IGkrKykKY29uc3QgbGwgTW9kMSA9IDEwMDAwMDAwMDdMTDsKY29uc3QgbGwgTW9kMiA9IDEwMDAwMDAwMDlMTDsKY29uc3QgbGwgQmFzZSA9IDI3MUxMOwoKc3RydWN0IGhhc2hlZF9zdHJpbmd7CiAgICB2ZWN0b3IgPGxsPiBwcmVmaXgxLCBwcmVmaXgyOwogICAgdmVjdG9yIDxsbD4gcG93MSwgcG93MjsKICAgIGxsIG47CgogICAgaGFzaGVkX3N0cmluZyhzdHJpbmcgcyl7CiAgICAgICAgbiA9IHMuc2l6ZSgpOwogICAgICAgIHByZWZpeDEuYXNzaWduKG4sIDApOwogICAgICAgIHByZWZpeDIuYXNzaWduKG4sIDApOwogICAgICAgIHBvdzEuYXNzaWduKG4gKyAxLCAwKTsKICAgICAgICBwb3cyLmFzc2lnbihuICsgMSwgMCk7CgogICAgICAgIHBvdzFbMF0gPSAxOwogICAgICAgIHBvdzJbMF0gPSAxOwoKICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspewogICAgICAgICAgICBwb3cxW2ldID0gcG93MVtpIC0gMV0gKiBCYXNlICUgTW9kMTsKICAgICAgICAgICAgcG93MltpXSA9IHBvdzJbaSAtIDFdICogQmFzZSAlIE1vZDI7CiAgICAgICAgfQoKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgICAgIGxsIHZhbCA9IHNbaV0gLSAnYScgKyAxOwoKICAgICAgICAgICAgcHJlZml4MVtpXSA9ICgoaSA/IHByZWZpeDFbaSAtIDFdICogQmFzZSA6IDApICsgdmFsKSAlIE1vZDE7CiAgICAgICAgICAgIHByZWZpeDJbaV0gPSAoKGkgPyBwcmVmaXgyW2kgLSAxXSAqIEJhc2UgOiAwKSArIHZhbCkgJSBNb2QyOwogICAgICAgIH0KICAgIH0KCiAgICBwYWlyPGxsLGxsPiBnZXRfaGFzaChsbCBsLCBsbCByKXsKICAgICAgICBsbCBoMSA9IHByZWZpeDFbcl07CiAgICAgICAgbGwgaDIgPSBwcmVmaXgyW3JdOwoKICAgICAgICBpZiAobCA+PSAxKXsKICAgICAgICAgICAgaDEgPSAoaDEgLSBwcmVmaXgxW2wgLSAxXSAqIHBvdzFbciAtIGwgKyAxXSAlIE1vZDEgKyBNb2QxKSAlIE1vZDE7CiAgICAgICAgICAgIGgyID0gKGgyIC0gcHJlZml4MltsIC0gMV0gKiBwb3cyW3IgLSBsICsgMV0gJSBNb2QyICsgTW9kMikgJSBNb2QyOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHtoMSwgaDJ9OwogICAgfQp9Owp2b2lkIHNvbHZlKCkgewogICAgbGwgbixtLHg7IHN0cmluZyBzMSxzMjsKICAgIGNpbiA+PiBuID4+IHMxID4+IG0gPj4gczIgPj4geDsKICAgIGhhc2hlZF9zdHJpbmcgdiA9IGhhc2hlZF9zdHJpbmcoczEpOwogICAgaGFzaGVkX3N0cmluZyBnID0gaGFzaGVkX3N0cmluZyhzMik7CiAgICB2ZWN0b3IgPHZlY3RvciA8bGw+PiBkcChuKzEsIHZlY3RvciA8bGw+KHgrMSwgLTEpKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDw9IG47IGkrKyl7CiAgICAgICAgZm9yIChpbnQgaiA9IHg7IGogPj0gMDsgai0tKXsKICAgICAgICAgICAgaWYgKGkgPj0gMSkKICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gbWF4KGRwW2ldW2pdLCBkcFtpLTFdW2pdKTsKICAgICAgICAgICAgaWYgKGRwW2ldW2pdID09IG0gLSAxIHx8IGkgPT0gbiB8fCBqID09IHgpIGNvbnRpbnVlOwogICAgICAgICAgICBsbCBsbyA9IGRwW2ldW2pdICsgMTsKICAgICAgICAgICAgbGwgaGkgPSBtaW4obSAtIDEsIGRwW2ldW2pdICsgbiAtIGkpOwogICAgICAgICAgICB3aGlsZSAobG8gPCBoaSl7CiAgICAgICAgICAgICAgICBsbCBtaWQgPSAobG8gKyBoaSArIDEpIC8gMjsKICAgICAgICAgICAgICAgIGlmIChnLmdldF9oYXNoKGRwW2ldW2pdICsgMSwgbWlkKSA9PSB2LmdldF9oYXNoKGksIGkgKyBtaWQgLSBkcFtpXVtqXSAtIDEpKXsKICAgICAgICAgICAgICAgICAgICBsbyA9IG1pZDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2V7CiAgICAgICAgICAgICAgICAgICAgaGkgPSBtaWQgLSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChnLmdldF9oYXNoKGRwW2ldW2pdICsxLCBsbykgPT0gdi5nZXRfaGFzaChpLCBpICsgbG8gLSBkcFtpXVtqXSAtIDEpKXsKICAgICAgICAgICAgICAgIGRwW2kgKyBsbyAtIGRwW2ldW2pdXVtqICsgMV0gPSBtYXgoZHBbaSArIGxvIC0gZHBbaV1bal1dW2ogKyAxXSwgbG8pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgbGwgYW5zdyA9IC0xOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPD0geDsgaSsrKXsKICAgICAgICBhbnN3ID0gbWF4KGFuc3csIGRwW25dW2ldKTsKICAgIH0KICAgIGNvdXQgPDwgKGFuc3cgPT0gbSAtIDEgPyAiWUVTIiA6ICJOTyIpIDw8ICJcbiI7Cn0KCmludCBtYWluKCkgewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBsbCB0ID0gMTsKICAgIHdoaWxlICh0LS0pIHsKICAgICAgICBzb2x2ZSgpOwogICAgfQoKICAgIHJldHVybiAwOwp9