У Кристины есть массив \(a\), называемый шаблоном, и состоящий из \(n\) целых чисел. Также у нее есть \(m\) строк, каждая из которых состоит только из строчных латинских букв. Строки пронумерованы от \(1\) до \(m\). Она хочет проверить, какие из них соответствуют шаблону.
Считается, что некоторая строка \(s\) соответствует шаблону, если одновременно верны все следующие условия:
- Длина строки \(s\) равна количеству элементов в массиве \(a\).
- Одинаковым числам из \(a\) соответствуют одинаковые символы из \(s\). То есть, если \(a_i = a_j\), то \(s_i = s_j\) для (\(1 \le i, j \le n\)).
- Одинаковым символам из \(s\) соответствуют одинаковые числа из \(a\). То есть, если \(s_i = s_j\), то \(a_i = a_j\) для (\(1 \le i, j \le n\)).
Другими словами, между символами строки и элементами массива должно существовать взаимно-однозначное соответствие.
Например, если \(a\) = [\(3, 5, 2, 1, 3\)], то строка «abfda» соответствует шаблону, а строка «afbfa» — нет, так как символу «f» одновременно соответствуют числа \(1\) и \(5\).
Выходные данные
Для каждого набора входных данных выведите \(m\) строк. На \(i\)-й строке (\(1 \le i \le m\)) выведите:
- «YES», если строка с индексом \(i\) соответствует шаблону;
- «NO» иначе.
Вы можете выводить ответ в любом регистре (например, строки «yEs», «yes», «Yes» и «YES» будут распознаны как положительный ответ).
Примечание
Первый набор входных данных разобран в условии задачи.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 5 3 5 2 1 3 2 abfda afbfa 2 1 2 3 ab abc aa 4 5 -3 5 -3 4 aaaa bcbc aba cbcb
|
YES
NO
YES
NO
NO
NO
YES
NO
YES
|