#include<bits/stdc++.h>
using namespace std;
#define FOR(i, a, b) for(int i = a, _b = b; i <= _b; i++)
int A[3], B[3], C = 0, i_pos = 0, j_pos = 0; 
char billboard[700][700], char_rec[3] = {'A', 'B', 'C'}; 

void place(char c, int a, int b) {
	FOR(i, i_pos, i_pos + a - 1) FOR(j, j_pos, j_pos + b - 1) {
		billboard[i][j] = c; 
	} 
} 

bool check() {
	FOR(i, 0, (1 << 3) - 1) {
		FOR(j, 0, 2) {
			if((1 << j) & i) {
				place(char_rec[j], A[j], B[j]); 
			} 
			else {
				place(char_rec[j], B[j], A[j]); 
			} 
			FOR(dem1, 0, C - 1) {
				FOR(dem2, 0, C - 1) cout << billboard[dem1][dem2];
				cout << "\n"; 
			}
			FOR(dem1, 0, C - 1) FOR(dem2, 0, C - 1) {
				if(billboard[dem1][dem2] == '0') {
					i_pos = dem1;
					j_pos = dem2; 
					break; 
				}
			} 
		}
		bool state = true;
		FOR(dem1, 0, C - 1) FOR(dem2, 0, C - 1) if(billboard[dem1][dem2] == '0')  state = false;
		if(state) {
			FOR(dem1, 0, C - 1) {
				FOR(dem2, 0, C - 1) cout << billboard[dem1][dem2];
				cout << "\n"; 
			}
			return true; 
		} 
		FOR(dem1, 0, C - 1) FOR(dem2, 0, C - 1) billboard[dem1][dem2] = '0';
		i_pos = 0;
		j_pos = 0;
	}
	return false;
}
void run() {
	int sum = 0; 
	FOR(i, 0, 2) {
		cin >> A[i] >> B[i]; 
		sum = sum + A[i] * B[i]; 
	}
	C = sqrt(sum);
	if(C * C != sum) {
		cout << -1 ;
		return; 
	} 
	FOR(dem1, 0, C - 1) FOR(dem2, 0, C - 1) {
		billboard[dem1][dem2] = '0'; 
	} 
	if(check()) return;
	else cout << -1 ;
} 

int main() {
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	run(); 
	return 0; 
}  