class Tnode:#树的结构定义
def __init__(self, data, left: None, right: None):
self.data = data
self.left = left
self.right = right
def sea(T: Tnode, v: int):#构造二叉搜索树
if T == None:
return
if v < T.data:
if T.left == None:
T.left = Tnode(v, None, None)
else:
sea(T.left, v)
if v > T.data:
if T.right == None:
T.right = Tnode(v, None, None)
else:
sea(T.right, v)
#通过前序和中序判断是否为一棵树
def qx(T: Tnode, q: list):
if T == None:
return
q.append(T.data)
qx(T.left, q)
qx(T.right, q)
def mid(T: Tnode, mi: list):
if T == None:
return
mid(T.left, mi)
mi.append(T.data)
mid(T.right, mi)
n = int(input())
s_t = list(input())
s_T = Tnode(s_t[0], None, None)
s_pr, s_mi = [], []
for k in range(1, len(s_t)):
sea(s_T, s_t[k])
qx(s_T, s_pr)
mid(s_T, s_mi)
ans = []
for i in range(n):
t = list(input())
T = Tnode(t[0], None, None)
for j in range(1, len(t)):
sea(T, t[j])
pr, mi = [], []
qx(T, pr)
mid(T, mi)
if s_mi == mi and s_pr == pr:
ans.append("YES")
else:
ans.append("NO")
for x in ans:
print(x)