#include <bits/stdc++.h>
using namespace std;
struct node {
node* next[10];
int cnt = 0;
node() {
for (int i = 0; i < 10; i++)
next[i] = nullptr;
cnt = 0;
}
};
node* root = new node();
void add(string& s) {
node* now = root;
for (int i = 0; i < (int)s.size(); i++) {
if (now -> next[s[i] - '0'] == nullptr)
now -> next[s[i] - '0'] = new node();
now = now -> next[s[i] - '0'];
}
now -> cnt += 1;
}
bool flag = true;
void dfs(node* now = root, int was = 0) {
if (now -> cnt && was) flag = false;
for (int i = 0; i < 10; i++) {
if (now -> next[i] != nullptr) {
dfs(now -> next[i], max(now -> cnt, was));
}
}
}
int main() {
int t;
cin >> t;
while(t--) {
root = new node();
int n;
cin >> n;
while(n--) {
string s;
cin >> s;
add(s);
}
flag = true;
dfs();
if (flag)
cout << "YES\n";
else
cout << "NO\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUgewoJbm9kZSogbmV4dFsxMF07CglpbnQgY250ID0gMDsKCW5vZGUoKSB7CgkJZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgaSsrKQoJCQluZXh0W2ldID0gbnVsbHB0cjsKCQljbnQgPSAwOwoJfQp9OwoKbm9kZSogcm9vdCA9IG5ldyBub2RlKCk7Cgp2b2lkIGFkZChzdHJpbmcmIHMpIHsKCW5vZGUqIG5vdyA9IHJvb3Q7Cglmb3IgKGludCBpID0gMDsgaSA8IChpbnQpcy5zaXplKCk7IGkrKykgewoJCWlmIChub3cgLT4gbmV4dFtzW2ldIC0gJzAnXSA9PSBudWxscHRyKQoJCQlub3cgLT4gbmV4dFtzW2ldIC0gJzAnXSA9IG5ldyBub2RlKCk7CgkJbm93ID0gbm93IC0+IG5leHRbc1tpXSAtICcwJ107Cgl9CSAKCW5vdyAtPiBjbnQgKz0gMTsKfQoKYm9vbCBmbGFnID0gdHJ1ZTsKCnZvaWQgZGZzKG5vZGUqIG5vdyA9IHJvb3QsIGludCB3YXMgPSAwKSB7CglpZiAobm93IC0+IGNudCAmJiB3YXMpIGZsYWcgPSBmYWxzZTsKCWZvciAoaW50IGkgPSAwOyBpIDwgMTA7IGkrKykgewoJCWlmIChub3cgLT4gbmV4dFtpXSAhPSBudWxscHRyKSB7CgkJCWRmcyhub3cgLT4gbmV4dFtpXSwgbWF4KG5vdyAtPiBjbnQsIHdhcykpOwoJCX0gIAkKCX0KfQoKaW50IG1haW4oKSB7CglpbnQgdDsKCWNpbiA+PiB0OwoJd2hpbGUodC0tKSB7CgkJcm9vdCA9IG5ldyBub2RlKCk7CgkJaW50IG47CgkJY2luID4+IG47CgkJd2hpbGUobi0tKSB7CgkJCXN0cmluZyBzOwoJCQljaW4gPj4gczsKCQkJYWRkKHMpOwoJCX0KCQlmbGFnID0gdHJ1ZTsKCQlkZnMoKTsKCQlpZiAoZmxhZykKCQkJY291dCA8PCAiWUVTXG4iOwoJCWVsc2UKCQkJY291dCA8PCAiTk9cbiI7Cgl9CglyZXR1cm4gMDsKfQogICAgIA==