The package for this problem was not updated by the problem writer or Codeforces administration after we've upgraded the judging servers. To adjust the time limit constraint, a solution execution time will be multiplied by 2. For example, if your solution works for 400 ms on judging servers, then the value 800 ms will be displayed and used to determine the verdict.

Virtual contest is a way to take part in past contest, as close as possible to participation on time. It is supported only ICPC mode for virtual contests.
If you've seen these problems, a virtual contest is not for you - solve these problems in the archive.
If you just want to solve some problem from a contest, a virtual contest is not for you - solve this problem in the archive.
Never use someone else's code, read the tutorials or communicate with other person during a virtual contest.

combinatorics

constructive algorithms

greedy

implementation

*2000

No tag edit access

The problem statement has recently been changed. View the changes.

×
C. Parquet

time limit per test

2 secondsmemory limit per test

256 megabytesinput

standard inputoutput

standard outputOnce Bob decided to lay a parquet floor in his living room. The living room is of size *n* × *m* metres. Bob had planks of three types: *a* planks 1 × 2 meters, *b* planks 2 × 1 meters, and *c* planks 2 × 2 meters. Help Bob find out, if it is possible to parquet the living room with such a set of planks, and if it is possible, find one of the possible ways to do so. Bob doesn't have to use all the planks.

Input

The first input line contains 5 space-separated integer numbers *n*, *m*, *a*, *b*, *c* (1 ≤ *n*, *m* ≤ 100, 0 ≤ *a*, *b*, *c* ≤ 10^{4}), *n* and *m* — the living room dimensions, *a*, *b* and *c* — amount of planks 1 × 2, 2 × 1 и 2 × 2 respectively. It's not allowed to turn the planks.

Output

If it is not possible to parquet the room with such a set of planks, output IMPOSSIBLE. Otherwise output one of the possible ways to parquet the room — output *n* lines with *m* lower-case Latin letters each. Two squares with common sides should contain the same letters, if they belong to one and the same plank, and different letters otherwise. Different planks can be marked with one and the same letter (see examples). If the answer is not unique, output any.

Examples

Input

2 6 2 2 1

Output

aabcca

aabdda

Input

1 1 100 100 100

Output

IMPOSSIBLE

Input

4 4 10 10 10

Output

aabb

aabb

bbaa

bbaa

Codeforces (c) Copyright 2010-2024 Mike Mirzayanov

The only programming contests Web 2.0 platform

Server time: May/22/2024 00:55:38 (h1).

Desktop version, switch to mobile version.

Supported by

User lists

Name |
---|