#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <cstdlib>
#include <istream>
#define MAX 10
struct Trie {
Trie *next[MAX];
int v;
};
Trie *root;
void creattrie(char *str)
{
int i, j, len, t;
Trie *p, *q;
p = root;
len = strlen(str);
for (i = 0; i < len; i++) {
t = str[i] - '0';
if (p->next[t] == NULL) {
q = new Trie;
q->v = 1;
for (j = 0; j < MAX; j++)
q->next[j] = NULL;
p->next[t] = q;
p = p->next[t];
}
else {
p->next[t]->v++;
p = p->next[t];
}
}
p->v = -1;
}
int find(char *str)
{
Trie *p;
p = root;
int i, j, len, t;
len = strlen(str);
for (i = 0; i < len; i++) {
t = str[i] - '0';
p = p->next[t];
if (p == NULL)
return 0;
if (p->v == -1)
return -1;
}
return -1;
}
int del(Trie* l )
{
int i;
if (l == NULL)
return 0;
for (i = 0; i < MAX; i++) {
if(l->next[i] != NULL)
del(l->next[i]);
}
free(l);
return 0;
}
int main( )
{
int i, j, T, M, flag;
char str[20];
scanf("%d", &T);
while (T--) {
root = new Trie;
for (i = 0; i < MAX; i++)
root->next[i] = NULL;
flag = 0;
scanf("%d",&M);
for (i = 0; i < M; i++) {
scanf("%s",str);
if (find(str)==-1)
flag = 1;
if (flag)
continue;
creattrie(str);
}
if (flag)
printf("NO\n");
else
printf("YES\n");
del(root);
}
return 0;
}