#include <iostream>
#include <string>
using namespace std;
bool isSubsequence(string s, string t) {
int n = s.size(), m = t.size();
int i = 0, j = 0;
while (i < n && j < m) {
if (s[i] == t[j]) {
j++; // Move pointer in t
}
i++; // Always move pointer in s
}
return j == m; // If we've matched all characters of t
}
int main() {
int T; // Number of test cases
cin >> T;
while (T--) {
int n, m;
string s, t;
cin >> n >> m; // Lengths of the strings
cin >> s >> t; // The two strings
if (isSubsequence(s, t)) {
cout << "YES" << endl;
} else {
cout << "NO" << endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc1N1YnNlcXVlbmNlKHN0cmluZyBzLCBzdHJpbmcgdCkgewogICAgaW50IG4gPSBzLnNpemUoKSwgbSA9IHQuc2l6ZSgpOwogICAgaW50IGkgPSAwLCBqID0gMDsKCiAgICB3aGlsZSAoaSA8IG4gJiYgaiA8IG0pIHsKICAgICAgICBpZiAoc1tpXSA9PSB0W2pdKSB7CiAgICAgICAgICAgIGorKzsgLy8gTW92ZSBwb2ludGVyIGluIHQKICAgICAgICB9CiAgICAgICAgaSsrOyAvLyBBbHdheXMgbW92ZSBwb2ludGVyIGluIHMKICAgIH0KCiAgICByZXR1cm4gaiA9PSBtOyAvLyBJZiB3ZSd2ZSBtYXRjaGVkIGFsbCBjaGFyYWN0ZXJzIG9mIHQKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgVDsgLy8gTnVtYmVyIG9mIHRlc3QgY2FzZXMKICAgIGNpbiA+PiBUOwoKICAgIHdoaWxlIChULS0pIHsKICAgICAgICBpbnQgbiwgbTsKICAgICAgICBzdHJpbmcgcywgdDsKICAgICAgICAKICAgICAgICBjaW4gPj4gbiA+PiBtOyAgLy8gTGVuZ3RocyBvZiB0aGUgc3RyaW5ncwogICAgICAgIGNpbiA+PiBzID4+IHQ7ICAvLyBUaGUgdHdvIHN0cmluZ3MKCiAgICAgICAgaWYgKGlzU3Vic2VxdWVuY2UocywgdCkpIHsKICAgICAgICAgICAgY291dCA8PCAiWUVTIiA8PCBlbmRsOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGNvdXQgPDwgIk5PIiA8PCBlbmRsOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKfQo=