#include <bits/stdc++.h>   using namespace std;   const int MAXN = (int)1e5 + 5;   int x[3];   int y[3];   int buf;   int main() {     buf = 0;     cin >> x[0] >> y[0] >> x[1] >> y[1] >> x[2] >> y[2];     for (long long i = 0; i < 3; ++i) {       if (x[i] < y[i]) {         buf = x[i];         x[i] = y[i];         y[i] = buf;       }     }     int n = max(x[0], x[1]);     n = max(n, x[2]);     bool eq = (x[0] == x[1] && x[1] == x[2]);     if (eq && x[0] == (y[0] + y[1] + y[2])) {       cout << n <<   n ;       for (long long i = 0; i < 3; ++i) {         for (long long j = 0; j < y[i]; ++j) {           for (long long p = 0; p < n; ++p) {             cout << (char)(65 + i);           }           cout <<   n ;         }       }       return 0;     }     int max = 0;     int med = 1;     int min = 2;     if (n == x[1]) {       max = 1;       med = 0;     }     if (n == x[2]) {       max = 2;       min = 0;       med = 1;     }     if (n - y[max] == x[med] && n - y[max] == x[min] && n == y[med] + y[min]) {       cout << n <<   n ;       for (long long j = 0; j < y[max]; ++j) {         for (long long p = 0; p < n; ++p) {           cout << (char)(65 + max);         }         cout <<   n ;       }       for (long long j = 0; j < n - y[max]; ++j) {         for (long long p = 0; p < y[med]; ++p) {           cout << (char)(65 + med);         }         for (long long p = 0; p < y[min]; ++p) {           cout << (char)(65 + min);         }         cout <<   n ;       }       return 0;     }     if (n - y[max] == y[med] && n - y[max] == y[min] && n == x[med] + x[min]) {       cout << n <<   n ;       for (long long j = 0; j < y[max]; ++j) {         for (long long p = 0; p < n; ++p) {           cout << (char)(65 + max);         }         cout <<   n ;       }       for (long long j = 0; j < n - y[max]; ++j) {         for (long long p = 0; p < x[med]; ++p) {           cout << (char)(65 + med);         }         for (long long p = 0; p < x[min]; ++p) {           cout << (char)(65 + min);         }         cout <<   n ;       }       return 0;     }     if (n - y[max] == y[med] && n - y[max] == x[min] && n == x[med] + y[min]) {       cout << n <<   n ;       for (long long j = 0; j < y[max]; ++j) {         for (long long p = 0; p < n; ++p) {           cout << (char)(65 + max);         }         cout <<   n ;       }       for (long long j = 0; j < n - y[max]; ++j) {         for (long long p = 0; p < x[med]; ++p) {           cout << (char)(65 + med);         }         for (long long p = 0; p < y[min]; ++p) {           cout << (char)(65 + min);         }         cout <<   n ;       }       return 0;     }     if (n - y[max] == x[med] && n - y[max] == y[min] && n == y[med] + x[min]) {       cout << n <<   n ;       for (long long j = 0; j < y[max]; ++j) {         for (long long p = 0; p < n; ++p) {           cout << (char)(65 + max);         }         cout <<   n ;       }       for (long long j = 0; j < n - y[max]; ++j) {         for (long long p = 0; p < y[med]; ++p) {           cout << (char)(65 + med);         }         for (long long p = 0; p < x[min]; ++p) {           cout << (char)(65 + min);         }         cout <<   n ;       }       return 0;     }     cout << -1;     return 0;   }