E. Ядерный синтез
ограничение по времени на тест
1.5 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Среди физиков-ядерщиков популярна следующая головоломка.

В реакторе находится набор из n атомов некоторых химических элементов. Под словосочетанием «номер атома» мы будем подразумевать номер элемента этого атома в периодической таблице химических элементов.

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

Целью является получение нового набора из k атомов, заданного заранее.

Сложность головоломки в том, что разрешается только сливать два атома в один, но не разделять один атом на несколько. Вам предлагается попробовать силы в решении данной головоломки.

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

В первой строке находятся два целых числа n и k (1 ≤ k ≤ n ≤ 17). Во второй строке через пробел перечислены символы элементов n атомов, которые доступны изначально. В третьей строке через пробел перечислены символы элементов k атомов, которые нужно получить. Символы элементов совпадают с символами из периодической таблицы химических элементов. Номера атомов не превышают 100 (элементы с большим номером крайне нестабильны). Некоторые атомы могут иметь одинаковые номера (то есть может быть несколько атомов одного и того же элемента). Сумма номеров изначальных атомов равна сумме номеров атомов, которые требуется получить.

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

Если синтезировать нужные атомы невозможно, то выведите «NO» без кавычек. Иначе выведите в первой строке «YES», а в следующих k строках выведите способ получения каждого из k атомов в виде равенств. Каждое равенство имеет вид «x1+x2+...+xt->yi», где xj — символ элемента некоторого атома из начального набора, а yi — символ элемента некоторого атома из конечного набора. Каждый атом из входных данных должен встретиться в выходных данных ровно один раз. Порядок слагаемых в уравнениях, а так же порядок вывода уравнений не имеет значения. Если решений несколько — выведите любое. Чтобы лучше понять формат вывода — смотрите примеры.

Примеры
Входные данные
10 3
Mn Co Li Mg C P F Zn Sc K
Sn Pt Y
Выходные данные
YES
Mn+C+K->Sn
Co+Zn+Sc->Pt
Li+Mg+P+F->Y
Входные данные
2 1
H H
He
Выходные данные
YES
H+H->He
Входные данные
2 2
Bk Fm
Cf Es
Выходные данные
NO
Примечание

Реакции из первого примера имеют вид (слева снизу приписан номер атома):

Для того, чтобы найти периодическую таблицу химических элементов, Вы можете использовать свою любимую поисковую систему.

Набор претестов содержит каждый из первых 100 элементов периодической таблицы хотя бы по одному разу. Вы можете использовать эту информацию для проверки опечаток.