#include <iostream>
#include <string>
using namespace std;
bool canTransform(string s, string t) {
int n = s.size(), m = t.size();
// 如果 t 本身就是 s 的子串(不需要操作的情况)
if (s.find(t) != string::npos) {
return true;
}
// 尝试所有可能的子串删除并添加到末尾的操作
for (int l = 0; l < n; ++l) {
for (int r = l; r < n; ++r) {
// 构造新的字符串:s 去掉 [l, r] 子串,然后将该子串添加到末尾
string new_s = s.substr(0, l) + s.substr(r + 1) + s.substr(l, r - l + 1);
if (new_s == t) {
return true;
}
}
}
return false;
}
int main() {
int T;
cin >> T;
while (T--) {
int n, m;
cin >> n >> m;
string s, t;
cin >> s >> t;
if (canTransform(s, t)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBjYW5UcmFuc2Zvcm0oc3RyaW5nIHMsIHN0cmluZyB0KSB7CiAgICBpbnQgbiA9IHMuc2l6ZSgpLCBtID0gdC5zaXplKCk7CiAgICAvLyDlpoLmnpwgdCDmnKzouqvlsLHmmK8gcyDnmoTlrZDkuLLvvIjkuI3pnIDopoHmk43kvZznmoTmg4XlhrXvvIkKICAgIGlmIChzLmZpbmQodCkgIT0gc3RyaW5nOjpucG9zKSB7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICAvLyDlsJ3or5XmiYDmnInlj6/og73nmoTlrZDkuLLliKDpmaTlubbmt7vliqDliLDmnKvlsL7nmoTmk43kvZwKICAgIGZvciAoaW50IGwgPSAwOyBsIDwgbjsgKytsKSB7CiAgICAgICAgZm9yIChpbnQgciA9IGw7IHIgPCBuOyArK3IpIHsKICAgICAgICAgICAgLy8g5p6E6YCg5paw55qE5a2X56ym5Liy77yacyDljrvmjokgW2wsIHJdIOWtkOS4su+8jOeEtuWQjuWwhuivpeWtkOS4sua3u+WKoOWIsOacq+WwvgogICAgICAgICAgICBzdHJpbmcgbmV3X3MgPSBzLnN1YnN0cigwLCBsKSArIHMuc3Vic3RyKHIgKyAxKSArIHMuc3Vic3RyKGwsIHIgLSBsICsgMSk7CiAgICAgICAgICAgIGlmIChuZXdfcyA9PSB0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsKICAgIGNpbiA+PiBUOwogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGludCBuLCBtOwogICAgICAgIGNpbiA+PiBuID4+IG07CiAgICAgICAgc3RyaW5nIHMsIHQ7CiAgICAgICAgY2luID4+IHMgPj4gdDsKICAgICAgICBpZiAoY2FuVHJhbnNmb3JtKHMsIHQpKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIllFUyIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8ICJOTyIgPDwgZW5kbDsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQ==