#include <bits/stdc++.h>
using namespace std;
int data[100][4];
bool bigger(int a, int b) {
if(data[a][3] > data[b][3])
return true;
else if(data[a][3] < data[b][3])
return false;
else if(data[a][2] > data[b][2])
return true;
else if(data[a][2] < data[b][2])
return false;
else if(data[a][1] > data[b][1])
return true;
else
return false;
}
void swap(int a, int b) {
int tmp;
for(int i = 0; i < 4; i++) {
tmp = data[a][i];
data[a][i] = data[b][i];
data[b][i] = tmp;
}
}
int main() {
int T, N, M;
cin >> T;
while(T--) {
map<string, int> dict;
vector<string> rdict;
string cari;
cin >> N >> M;
cin >> cari;
for(int i = 0; i < N; i++) {
string tmp;
cin >> tmp;
dict[tmp] = i;
rdict.push_back(tmp);
cin >> data[i][1] >> data[i][2] >> data[i][3];
data[i][0] = i;
}
/*
for(auto it = dict.begin(); it != dict.end(); it++)
cout << it->first << ", " << it->second << endl;
for(int i = 0; i < rdict.size(); i++)
cout << i << ", " << rdict[i] << endl;
*/
// bubble sort
for(int i = 0; i < N; i++)
for(int j = 1; j < N; j++)
if(bigger(j, j-1)) { // if data[j] > data[j-1]
swap(j, j-1);
}
/*
for(int i = 0; i < N; i++) {
for(int j = 0; j < 4; j++)
cout << data[i][j] << " ";
cout << endl;
}
*/
// cari data ke-0 ada di posisi berapa
for(int i = 0; i < N; i++)
if(data[i][0] == dict[cari]) {
if(i < M)
cout << "YA" << endl;
else
cout << "TIDAK" << endl;
break;
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZGF0YVsxMDBdWzRdOwoKYm9vbCBiaWdnZXIoaW50IGEsIGludCBiKSB7CglpZihkYXRhW2FdWzNdID4gZGF0YVtiXVszXSkKCQlyZXR1cm4gdHJ1ZTsKCWVsc2UgaWYoZGF0YVthXVszXSA8IGRhdGFbYl1bM10pCgkJcmV0dXJuIGZhbHNlOwoJZWxzZSBpZihkYXRhW2FdWzJdID4gZGF0YVtiXVsyXSkKCQlyZXR1cm4gdHJ1ZTsKCWVsc2UgaWYoZGF0YVthXVsyXSA8IGRhdGFbYl1bMl0pCgkJcmV0dXJuIGZhbHNlOwoJZWxzZSBpZihkYXRhW2FdWzFdID4gZGF0YVtiXVsxXSkKCQlyZXR1cm4gdHJ1ZTsKCWVsc2UKCQlyZXR1cm4gZmFsc2U7Cn0KCnZvaWQgc3dhcChpbnQgYSwgaW50IGIpIHsKCWludCB0bXA7Cglmb3IoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CgkJdG1wID0gZGF0YVthXVtpXTsKCQlkYXRhW2FdW2ldID0gZGF0YVtiXVtpXTsKCQlkYXRhW2JdW2ldID0gdG1wOwoJfQp9CgppbnQgbWFpbigpIHsKCWludCBULCBOLCBNOwoJY2luID4+IFQ7Cgl3aGlsZShULS0pIHsKCQltYXA8c3RyaW5nLCBpbnQ+IGRpY3Q7CgkJdmVjdG9yPHN0cmluZz4gcmRpY3Q7CgkJc3RyaW5nIGNhcmk7CgkJY2luID4+IE4gPj4gTTsKCQljaW4gPj4gY2FyaTsKCQlmb3IoaW50IGkgPSAwOyBpIDwgTjsgaSsrKSB7CgkJCXN0cmluZyB0bXA7CgkJCWNpbiA+PiB0bXA7CgkJCWRpY3RbdG1wXSA9IGk7CgkJCXJkaWN0LnB1c2hfYmFjayh0bXApOwoJCQljaW4gPj4gZGF0YVtpXVsxXSA+PiBkYXRhW2ldWzJdID4+IGRhdGFbaV1bM107CgkJCWRhdGFbaV1bMF0gPSBpOwoJCX0KCQkvKgoJCWZvcihhdXRvIGl0ID0gZGljdC5iZWdpbigpOyBpdCAhPSBkaWN0LmVuZCgpOyBpdCsrKQoJCQljb3V0IDw8IGl0LT5maXJzdCA8PCAiLCAiIDw8IGl0LT5zZWNvbmQgPDwgZW5kbDsKCQlmb3IoaW50IGkgPSAwOyBpIDwgcmRpY3Quc2l6ZSgpOyBpKyspCgkJCWNvdXQgPDwgaSA8PCAiLCAiIDw8IHJkaWN0W2ldIDw8IGVuZGw7CgkJKi8KCQkvLyBidWJibGUgc29ydAoJCWZvcihpbnQgaSA9IDA7IGkgPCBOOyBpKyspCgkJCWZvcihpbnQgaiA9IDE7IGogPCBOOyBqKyspCgkJCQlpZihiaWdnZXIoaiwgai0xKSkgeyAvLyBpZiBkYXRhW2pdID4gZGF0YVtqLTFdCgkJCQkJc3dhcChqLCBqLTEpOwoJCQkJfQoJCS8qCgkJZm9yKGludCBpID0gMDsgaSA8IE47IGkrKykgewoJCQlmb3IoaW50IGogPSAwOyBqIDwgNDsgaisrKQoJCQkJY291dCA8PCBkYXRhW2ldW2pdIDw8ICIgIjsKCQkJY291dCA8PCBlbmRsOwoJCX0KCQkqLwoJCS8vIGNhcmkgZGF0YSBrZS0wIGFkYSBkaSBwb3Npc2kgYmVyYXBhCgkJZm9yKGludCBpID0gMDsgaSA8IE47IGkrKykKCQkJaWYoZGF0YVtpXVswXSA9PSBkaWN0W2NhcmldKSB7CgkJCQlpZihpIDwgTSkKCQkJCQljb3V0IDw8ICJZQSIgPDwgZW5kbDsKCQkJCWVsc2UKCQkJCQljb3V0IDw8ICJUSURBSyIgPDwgZW5kbDsKCQkJCWJyZWFrOwoJCQl9CgkJCQkKCX0KCXJldHVybiAwOwp9