#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
inline int power(int a, int b, int mod=M) {
int x = 1;
a %= mod;
while (b) {
if (b & 1) x = (x * a) % mod;
a = (a * a) % mod;
b >>= 1;
}
return x;
}
//_ ***************************** START Below *******************************
vector<tuple<int,int,string>> a;
vector<string> consistency(int n){
vector<int>f1(26, 0);
vector<int>f2(26, 0);
f1[0]++;
f2[0]++;
vector<string> ans;
for(int i=0; i<n; i++){
int tar = get<0>(a[i]);
int freq = get<1>(a[i]);
string wrd = get<2>(a[i]);
for(auto& ch : wrd){
if(tar == 1) f1[ch-'a'] += freq;
else f2[ch-'a'] += freq;
}
int s = 0;
while(s<26 && f1[s] == 0) s++;
int e = 25;
while(e>s && f2[e] == 0) e--;
//* guranteed case =>
//* either s = xxxx yyyyy zzz .... OR s = xxxx
//* and t = xx or xxxx or xxxxx
if(e==s){
bool moreInS = false;
for(int j=s+1; j<26; j++){
if(f1[j] != 0) {
moreInS = true;
break;
}
}
if(moreInS) ans.push_back("NO");
else if(f2[s] > f1[s]) ans.push_back("YES");
else ans.push_back("NO");
}
else{
ans.push_back("YES");
}
}
return ans;
}
vector<string> practice(int n){
}
void solve() {
int n;
cin>> n;
a.resize(n);
for(int i=0; i<n; i++){
int x, y;
string z;
cin >> x >> y >> z;
a[i] = {x,y,z};
}
auto ans = consistency(n);
for(auto& it : ans) cout << it << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
cin >> t;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAoKCmNvbnN0IGludCBNID0gMTAwMDAwMDAwNzsKY29uc3QgaW50IE4gPSAzZTUrOTsKY29uc3QgaW50IElORiA9IDJlOSsxOwpjb25zdCBpbnQgTElORiA9IDIwMDAwMDAwMDAwMDAwMDAwMDE7CgppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYiwgaW50IG1vZD1NKSB7CiAgICBpbnQgeCA9IDE7CiAgICBhICU9IG1vZDsKICAgIHdoaWxlIChiKSB7CiAgICAgICAgaWYgKGIgJiAxKSB4ID0gKHggKiBhKSAlIG1vZDsgCiAgICAgICAgYSA9IChhICogYSkgJSBtb2Q7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKLy9fICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFNUQVJUIEJlbG93ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKCgoKCnZlY3Rvcjx0dXBsZTxpbnQsaW50LHN0cmluZz4+IGE7Cgp2ZWN0b3I8c3RyaW5nPiBjb25zaXN0ZW5jeShpbnQgbil7CgogICAgdmVjdG9yPGludD5mMSgyNiwgMCk7CiAgICB2ZWN0b3I8aW50PmYyKDI2LCAwKTsKICAgIAogICAgZjFbMF0rKzsKICAgIGYyWzBdKys7CiAgICAKICAgIHZlY3RvcjxzdHJpbmc+IGFuczsKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKyl7CiAgICAgICAgCiAgICAgICAgaW50IHRhciA9IGdldDwwPihhW2ldKTsKICAgICAgICBpbnQgZnJlcSA9IGdldDwxPihhW2ldKTsKICAgICAgICBzdHJpbmcgd3JkID0gZ2V0PDI+KGFbaV0pOwoKICAgICAgICAKICAgICAgICBmb3IoYXV0byYgY2ggOiB3cmQpewogICAgICAgICAgICBpZih0YXIgPT0gMSkgZjFbY2gtJ2EnXSArPSBmcmVxOwogICAgICAgICAgICBlbHNlIGYyW2NoLSdhJ10gKz0gZnJlcTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaW50IHMgPSAwOwogICAgICAgIHdoaWxlKHM8MjYgJiYgZjFbc10gPT0gMCkgcysrOwoKICAgICAgICBpbnQgZSA9IDI1OwogICAgICAgIHdoaWxlKGU+cyAmJiBmMltlXSA9PSAwKSBlLS07CiAgICAgICAgCiAgICAgICAgLy8qIGd1cmFudGVlZCBjYXNlID0+ICAKICAgICAgICAvLyogICAgIGVpdGhlciAgcyA9IHh4eHggeXl5eXkgenp6IC4uLi4gICBPUiAgIHMgPSB4eHh4CiAgICAgICAgLy8qICAgICAgICBhbmQgIHQgPSB4eCAgb3IgeHh4eCBvciB4eHh4eCAKICAgICAgICBpZihlPT1zKXsKICAgICAgICAgICAgYm9vbCBtb3JlSW5TID0gZmFsc2U7CiAgICAgICAgICAgIGZvcihpbnQgaj1zKzE7IGo8MjY7IGorKyl7CiAgICAgICAgICAgICAgICBpZihmMVtqXSAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgbW9yZUluUyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYobW9yZUluUykgYW5zLnB1c2hfYmFjaygiTk8iKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGVsc2UgaWYoZjJbc10gPiBmMVtzXSkgYW5zLnB1c2hfYmFjaygiWUVTIik7CiAgICAgICAgICAgIGVsc2UgYW5zLnB1c2hfYmFjaygiTk8iKTsKICAgICAgICB9CiAgICAgICAgZWxzZXsKICAgICAgICAgICAgYW5zLnB1c2hfYmFjaygiWUVTIik7CiAgICAgICAgfQoKICAgIH0KCgogICAgcmV0dXJuIGFuczsKCn0KCgoKCgoKCgoKCgoKCgoKdmVjdG9yPHN0cmluZz4gcHJhY3RpY2UoaW50IG4pewoKCn0KCgoKCgp2b2lkIHNvbHZlKCkgewogICAgCiAgICBpbnQgbjsKICAgIGNpbj4+IG47CiAgICAKICAgIGEucmVzaXplKG4pOwogICAgZm9yKGludCBpPTA7IGk8bjsgaSsrKXsKICAgICAgICBpbnQgeCwgeTsKICAgICAgICBzdHJpbmcgejsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHo7CiAgICAgICAgYVtpXSA9IHt4LHksen07CiAgICB9CiAgICAKICAgIGF1dG8gYW5zID0gY29uc2lzdGVuY3kobik7CiAgICBmb3IoYXV0byYgaXQgOiBhbnMpIGNvdXQgPDwgaXQgPDwgZW5kbDsKCgp9CgoKCgoKaW50MzJfdCBtYWluKCkgewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CgogICAgaW50IHQgPSAxOwogICAgY2luID4+IHQ7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==