C. Паркет
ограничение по времени на тест
2 seconds
ограничение по памяти на тест
256 megabytes
ввод
stdin
вывод
stdout

Однажды Вася решил положить паркет у себя в гостиной, которая имела размеры n × m метров. У Васи были плитки трех типов: a плиток 1 × 2 метра, b плиток 2 × 1 метра и c плиток 2 × 2 метра. Помогите Васе выяснить, получится ли у него положить паркет в гостиной, и если получится, найдите один из возможных способов это сделать. Васе не обязательно использовать все имеющиеся плитки.

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

В первой строке входных данных через пробел записаны 5 целых чисел n, m, a, b, c (1 ≤ n, m ≤ 100, 0 ≤ a, b, c ≤ 104), n и m — размеры гостиной, a, b и c — соответственно число плиток 1 × 2, 2 × 1 и 2 × 2. Поворачивать плитки не разрешается.

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

Если положить паркет, используя имеющиеся плитки, невозможно, выведите IMPOSSIBLE. Иначе выведите один из возможных вариантов паркета в гостиной — выведите n строк по m строчных латинских букв в каждой. Две соседние по стороне клетки должны содержать одинаковые буквы, если эти клетки относятся к одной и той же плитке, и различные буквы в противном случае. Разные плитки могут обозначаться одной и той же буквой (см. примеры). Если решений несколько, выведите любое.

Примеры
Входные данные
2 6 2 2 1
Выходные данные
aabcca
aabdda
Входные данные
1 1 100 100 100
Выходные данные
IMPOSSIBLE
Входные данные
4 4 10 10 10
Выходные данные
aabb
aabb
bbaa
bbaa