D. Раздел острова
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

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

Остров условно можно представить как два прямоугольника размерами a × b и c × d единичных клеток соответственно, которые располагаются вплотную друг к другу. При этом одна из сторон длины a и одна из сторон длины c лежат на одной прямой. Более подробно это можно видеть на рисунке.

i-ой партии полагается доля острова в xi единичных клеток. Каждая такая доля должна целиком покрывать некоторые клетки острова (частично покрывать клетки не допускается) и быть связной фигурой. Связность подразумевает, что из любой клетки партии можно добраться до любой другой клетки этой же партии, передвигаясь через смежные по ребрам клетки, которые также принадлежат данной партии.

От Вас требуется разделить остров между партиями.

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

В первой строке содержится 5 целых чисел, разделенных пробелом — a, b, c, d и n (1 ≤ a, b, c, d ≤ 50, b ≠ d, 1 ≤ n ≤ 26). Во второй строке находится n чисел, разделенных пробелом. i-е из них равно числу xi (1 ≤ xi ≤ a × b + c × d). Гарантируется, что .

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

Если разделить остров между партиями требуемым образом невозможно — выведите «NO» (без кавычек). Иначе выведите «YES» (тоже без кавычек), а, начиная со следующей строки, выведите max(b, d) строк, по a + c символов в каждой. Для обозначения, какой партии какую клетку острова отнести, используйте маленькие латинские буквы. Для первой по порядку партии из входных данных используйте «a», для второй — «b» и так далее. Для клеток, принадлежащих морю, используйте «.». Первый символ второй строки выходных данных должен соответствовать клетке, принадлежащей прямоугольнику a × b, последний символ второй строки — клетке, принадлежащей прямоугольнику c × d.

Если решений несколько, выведите любое.

Примеры
Входные данные
3 4 2 2 3
5 8 3
Выходные данные
YES
aaabb
aabbb
cbb..
ccb..
Входные данные
3 2 1 4 4
1 2 3 4
Выходные данные
YES
abbd
cccd
...d
...d