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
****************************************************************/