#include <iostream>
using namespace std;
int n;
string s1;
//树
struct Tnode {
char data;
Tnode* l, * r;
};
//将字符插入树
void insert(Tnode*& root, char x) {
if (root->l == NULL && x < root->data) {
Tnode* newnode = new Tnode;
newnode->data = x;
newnode->l = newnode->r = NULL;
root->l = newnode;
} else if (root->r == NULL && x > root->data) {
Tnode* newnode = new Tnode;
newnode->data = x;
newnode->l = newnode->r = NULL;
root->r = newnode;
} else if (x > root->data) {
insert(root->r, x);
} else if (x < root->data) {
insert(root->l, x);
}
}
//利用字符串建立一棵树
Tnode* create(string s) {
//来一个根节点
Tnode* root = new Tnode;
root->data = s[0];
root->l = root->r = NULL;
//处理子孙
for (int i = 1; i < s.length(); i++) {
insert(root, s[i]);
}
return root;
}
//比较两棵树是否一样
bool my_compare(Tnode* a, Tnode* b) {
if (a == NULL && b == NULL) return true;
if (a == NULL || b == NULL) return false;
//比较这个节点值一不一样
if (a->data != b->data) return false;
return my_compare(a->l, b->l) && my_compare(a->r, b->r);
}
int main() {
while (cin >> n) {
cin >> s1;
//给模板串建立一棵树
Tnode* m = create(s1);
for (int i = 0; i < n; i++) {
cin >> s1;
Tnode* n = create(s1);
//比较两棵树
if (my_compare(m, n)) cout << "YES" << endl;
else cout << "NO" << endl;
}
}
}
// 64 位输出请用 printf("%lld")