A. Акакий и строка
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Акакий Владиславович изучает строки. Сегодня он столкнулся со следующей задачей.

Дана строка $$$s$$$ длины $$$n$$$, состоящая из строчных букв английского алфавита и знаков вопроса. Можно ли заменить знаки вопроса на строчные буквы английского алфавита так, чтобы в полученную строку строка «abacaba» входила как подстрока ровно один раз?

Каждый знак вопроса должен быть заменён ровно на одну букву. Например, строка «a?b?c» может быть преобразована в строки «aabbc» или «azbzc», но не может быть преобразована в строки «aabc», «a?bbc» или «babbc».

Вхождением строки $$$t$$$ длины $$$m$$$ в строку $$$s$$$ длины $$$n$$$ называется такой индекс $$$i$$$ ($$$1 \leq i \leq n - m + 1$$$), что строка $$$s[i..i+m-1]$$$, образованная последовательными $$$m$$$ символами строки $$$s$$$, начиная с $$$i$$$-го, совпадает со строкой $$$t$$$. Например, в строке «ababa» есть два вхождения строки «aba» как подстроки: $$$i = 1$$$ и $$$i = 3$$$, а в строке «acba» вхождения строки «aba» как подстроки нет.

Помогите Акакию Владиславовичу проверить можно ли заменить все знаки вопроса на строчные буквы английского алфавита так, чтобы в полученную строку строка «abacaba» входила как подстрока ровно один раз.

Входные данные

В первой строке задано число $$$T$$$ ($$$1 \leq T \leq 5000$$$) — количество наборов входных данных. Следующие $$$T$$$ пар строк содержат описания наборов входных данных.

В первой строке описания содержится целое число $$$n$$$ ($$$7 \leq n \leq 50$$$) — длина строки $$$s$$$.

Вторая строка содержит строку $$$s$$$ длины $$$n$$$, состоящую из строчных букв английского алфавита и знаков вопроса.

Выходные данные

Для каждого набора входных данных выведите ответ на него.

В случае, если невозможно заменить знаки вопроса в строке $$$s$$$ на строчные буквы английского алфавита так, чтобы в получившейся строке было ровно одно вхождение строки «abacaba» как подстроки, выведите «No».

В противном случае, выведите «Yes», а во второй строке выведите строку, состоящую из $$$n$$$ строчный букв английского алфавита, — полученную строку. Если существует несколько подходящий строк, выведите любую.

Вы можете выводить «Yes» и «No» в любом регистре (например, строки yEs, yes, Yes и YES будут распознаны как положительный ответ).

Пример
Входные данные
6
7
abacaba
7
???????
11
aba?abacaba
11
abacaba?aba
15
asdf???f???qwer
11
abacabacaba
Выходные данные
Yes
abacaba
Yes
abacaba
Yes
abadabacaba
Yes
abacabadaba
No
No
Примечание

В первом примере в строке «abacaba» есть ровно одно вхождение строки «abacaba» как подстроки, совпадающее со всей строкой.

Во втором примере строка из семи знаков вопроса может быть преобразована в любую строку из семи строчных букв английского алфавита, в том числе и в «abacaba».

В шестом примере в строке есть два вхождения строки «abacaba» как подстроки.