Преобразование строки
ограничение по времени на тест
1 секунда
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Даны две строки $$$S$$$ и $$$T$$$ из строчных букв английского алфавита.

Посмотрим на следующий процесс. Рассмотрим не более одного раза каждый символ, хотя бы где-то входящий в первую строку. После чего, для рассматриваемого символа $$$x$$$ определим другой символ $$$p(x) \neq x$$$ и заменим некоторые вхождения $$$x$$$ в $$$S$$$ на $$$p(x)$$$. Определите, возможно ли в ходе такого процесса получить из строки $$$S$$$ строку $$$T$$$. При этом разные символы можно заменять на один и тот же символ или на символ, который заменяться не будет.

Например, пусть $$$S = $$$ «aabab», $$$T = $$$ «abbbc». Из $$$S$$$ можно получить $$$T$$$, если выбрать p('a') = 'b', p('b') = 'c' и заменить второе и третье вхождение 'a' на p('a'), второе вхождение 'b' на p('b').

А если $$$S = $$$ «aabaс», $$$T = $$$ «bbbbb», то все вхождения 'a' и 'c' были заменены на 'b'.

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

В первой строке вам дано число $$$n$$$ $$$(1 \leqslant n \leqslant 200\,000)$$$. Во второй строке задана $$$S$$$. В третьей строке задана $$$T$$$. Обе строки имеют длину $$$n$$$ и состоят только из букв от 'a' до 'z'.

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

Если возможно осуществить описанный процесс так, чтобы из $$$S$$$ получилась $$$T$$$, выведите «YES», на следующей строке выведите $$$m$$$ – количество различных символов $$$S$$$, которые хотя бы раз заменялись. Обозначим эти символы за $$$c_1,\ c_2,\ \ldots \ c_m$$$. После чего выведите $$$m$$$ строк. На $$$i$$$-й строке необходимо вывести символы $$$c_i$$$ и $$$p(c_i)$$$ через пробел. Если это сделать невозможно, выведите «NO».

Примеры

Входные данные
3
aab
abb
Выходные данные
YES
1
a b
Входные данные
4
aabb
eeff
Выходные данные
YES
2
a e
b f
Входные данные
3
abc
abc
Выходные данные
YES
0
Входные данные
5
bcbdb
xcydz
Выходные данные
NO
Входные данные
3
abc
ddd
Выходные данные
YES
3
a d
b d
c d
Входные данные
3
abc
aaa
Выходные данные
YES
2
b a
c a

Система оценки

В данной задаче $$$50$$$ тестов, помимо тестов из условия, каждый из них оценивается в $$$2$$$ балла. Результаты работы ваших решений на всех тестах будут доступны сразу во время соревнования.

Решения, корректно работающие, когда обе программы состоят только из символов 'a' и 'b', наберут не менее 20 баллов.

Решения, корректно работающие, когда обе программы состоят только из символов 'a', 'b', 'c', наберут не менее 40 баллов.

Решения, корректно работающие при $$$n \leqslant 1\,000$$$ наберут не менее 60 баллов.

Решения, корркетно работающие только для случая, когда описанными заменами из одной строки вторую получить невозможно, будут оцениваться в 0 баллов.