rt,WA on #26
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,m,r,c,flag;
char a[3000][3000];
signed main(){
cin>>n>>m>>r>>c;
if(r>n||c>m||r<0||c<0){
flag=1;
}
else{
if(r==0){
if(c==0){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=(char)((i+j-2)%26+'a');
}
}
}
else if(c==m){
if(m==1){
flag=1;
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=(char)((j-1)%26+'a');
}
}
}
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=c;j++){
a[i][j]=(char)((j-1)%26+'a');
}
}
for(int i=1;i<=n;i++){
for(int j=c+1;j<=m;j++){
a[i][j]=(char)((i+j-2)%26+'a');
}
}
}
}
else if(r==n){
if(c==0){
if(n==1){
flag=1;
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=(char)((i-1)%26+'a');
}
}
}
}
else if(c==m){
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]='a';
}
}
}
else{
if(m%2==0&&c%2==1){
flag=1;
}
else if((m%2==1&&c%2==0)||(m%2==0&&c%2==0)){
for(int i=1;i<=n;i++){
for(int j=1;j<=c/2;j++){
a[i][j]=a[i][m-j+1]='a';
}
}
for(int i=2;i<=n;i++){
for(int j=c/2+1;j<=m-c/2;j++){
a[i][j]='a';
}
}
for(int j=c/2+1;j<=m-c/2;j++){
a[1][j]='b';
}
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=c/2;j++){
a[i][j]=a[i][m-j+1]='a';
}
}
for(int i=2;i<=n;i++){
for(int j=c/2+1;j<=m-c/2;j++){
a[i][j]='a';
}
}
for(int j=c/2+1;j<=m-c/2;j++){
a[1][j]='b';
}
for(int i=1;i<=n;i++){
a[i][m/2+1]='a';
}
}
}
}
else{
if(c==0){
for(int i=1;i<=r;i++){
for(int j=1;j<=m;j++){
a[i][j]='a';
}
}
for(int i=r+1;i<=n;i++){
for(int j=1;j<=m;j++){
a[i][j]=(char)((i+j-2)%26+'a');
}
}
}
else if(c==m){
if(n%2==0&&r%2==1){
flag=1;
}
else if((n%2==1&&r%2==0)||n%2==0&&r%2==0){
for(int i=1;i<=r/2;i++){
for(int j=1;j<=m;j++){
a[i][j]=a[n-i+1][j]='a';
}
}
for(int i=r/2+1;i<=n-r/2;i++){
for(int j=2;j<=m;j++){
a[i][j]='a';
}
}
for(int i=r/2+1;i<=n-r/2;i++){
a[i][1]='b';
}
}
else{
for(int i=1;i<=r/2;i++){
for(int j=1;j<=m;j++){
a[i][j]=a[n-i+1][j]='a';
}
}
for(int i=r/2+1;i<=n-r/2;i++){
for(int j=2;j<=m;j++){
a[i][j]='a';
}
}
for(int i=r/2+1;i<=n-r/2;i++){
a[i][1]='b';
}
for(int j=1;j<=m;j++){
a[n/2+1][j]='a';
}
}
}
else{
for(int i=1;i<=r;i++){
for(int j=1;j<=m;j++){
a[i][j]='a';
}
}
for(int i=r+1;i<=n;i++){
for(int j=1;j<=c;j++){
a[i][j]='a';
}
for(int j=c+1;j<=m;j++){
a[i][j]='b';
}
}
}
}
}
if(flag){
cout<<"IMPOSSIBLE";
}
else{
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<a[i][j];
}
cout<<endl;
}
}
return 0;
}