import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int[] ftree = new int[11111];
static int[] stree = new int[11111];
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) {
int n = in.nextInt();
if (n == 0)
break;
String s = in.next();
Arrays.fill(ftree,-1);
for (int i = 0; i < s.length(); i++) {
int x = s.charAt(i)-'0';
int j = 1;
while(ftree[j]!=-1){
if(x<=ftree[j])
j = j*2;
else
j = j*2+1;
}
ftree[j] = x;
}
for (int i = 0; i < n; i++) {
String s1 = in.next();
Arrays.fill(stree, -1);
for (int k = 0; k < s1.length(); k++) {
int x = s1.charAt(k) - '0';
int j = 1;
while (stree[j] != -1) {
if (x <= stree[j])
j = j * 2;
else
j = j * 2 + 1;
}
stree[j] = x;
}
boolean flag = true;
for (int k = 0; k < ftree.length; k++) {
if (ftree[k] != stree[k]) {
flag = false;
break;
}
}
if (flag)
System.out.println("YES");
else
System.out.println("NO");
}
}
}
}
/**************************************************************
Problem: 2196
User: admin
Language: Java
Result: Accepted
Time:643 ms
Memory:40176 kb
****************************************************************/