#include <iostream>
#include <string>
using namespace std;
// 判断是否可以通过删除一个区间得到 t
bool canBeMadeEqual(string& s, string& t) {
int m = s.length(), n = t.length();
// 尝试从前和后依次匹配
int i = 0, j = 0;
// 从左到右匹配 t
while (i < m && j < n) {
if (s[i] == t[j]) {
j++;
}
i++;
}
// 如果 j == n,说明 t 完全匹配到了 s 的一部分
if (j == n) {
return true;
}
return false;
}
int main() {
int T;
cin >> T;
while (T--) {
int m, n;
cin >> m >> n;
string s, t;
cin >> s >> t;
if (canBeMadeEqual(s, t)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8g5Yik5pat5piv5ZCm5Y+v5Lul6YCa6L+H5Yig6Zmk5LiA5Liq5Yy66Ze05b6X5YiwIHQKYm9vbCBjYW5CZU1hZGVFcXVhbChzdHJpbmcmIHMsIHN0cmluZyYgdCkgewogICAgaW50IG0gPSBzLmxlbmd0aCgpLCBuID0gdC5sZW5ndGgoKTsKICAgIAogICAgLy8g5bCd6K+V5LuO5YmN5ZKM5ZCO5L6d5qyh5Yy56YWNCiAgICBpbnQgaSA9IDAsIGogPSAwOwogICAgCiAgICAvLyDku47lt6bliLDlj7PljLnphY0gdAogICAgd2hpbGUgKGkgPCBtICYmIGogPCBuKSB7CiAgICAgICAgaWYgKHNbaV0gPT0gdFtqXSkgewogICAgICAgICAgICBqKys7CiAgICAgICAgfQogICAgICAgIGkrKzsKICAgIH0KICAgIAogICAgLy8g5aaC5p6cIGogPT0gbu+8jOivtOaYjiB0IOWujOWFqOWMuemFjeWIsOS6hiBzIOeahOS4gOmDqOWIhgogICAgaWYgKGogPT0gbikgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQogICAgCiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewogICAgaW50IFQ7CiAgICBjaW4gPj4gVDsKICAgIAogICAgd2hpbGUgKFQtLSkgewogICAgICAgIGludCBtLCBuOwogICAgICAgIGNpbiA+PiBtID4+IG47CiAgICAgICAgc3RyaW5nIHMsIHQ7CiAgICAgICAgY2luID4+IHMgPj4gdDsKCiAgICAgICAgaWYgKGNhbkJlTWFkZUVxdWFsKHMsIHQpKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIllFUyIgPDwgZW5kbDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBjb3V0IDw8ICJOTyIgPDwgZW5kbDsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDA7Cn0K