#include <bits/stdc++.h>
using namespace std;
int main() {
  int l[3][2];
  char alf[] = {'A', 'B', 'C'};
  int d[3];
  for (int i = (0); i < (3); i++) {
    cin >> l[i][0];
    cin >> l[i][1];
  }
  for (int t = (0); t < (3); t++) {
    for (int d0 = (0); d0 < (2); d0++) {
      for (int d1 = (0); d1 < (2); d1++) {
        for (int d2 = (0); d2 < (2); d2++) {
          d[0] = d0;
          d[1] = d1;
          d[2] = d2;
          if (l[t][d[0]] == l[(t + 1) % 3][d[1]] &&
              l[(t + 1) % 3][d[1]] == l[(t + 2) % 3][d[2]] &&
              l[t][d[0] ^ 1] + l[(t + 1) % 3][d[1] ^ 1] +
                      l[(t + 2) % 3][d[2] ^ 1] ==
                  l[t][d[0]]) {
            cout << l[t][d[0]] << endl;
            for (int i = (0); i < (3); i++)
              for (int j = (0); j < (l[(t + i) % 3][d[i] ^ 1]); j++) {
                for (int k = (0); k < (l[t][d[0]]); k++)
                  cout << alf[(t + i) % 3];
                cout << endl;
              }
            return 0;
          }
          if (l[t][d[0]] == l[(t + 1) % 3][d[1]] + l[(t + 2) % 3][d[2]] &&
              l[(t + 1) % 3][d[1] ^ 1] == l[(t + 2) % 3][d[2] ^ 1] &&
              l[t][d[0]] == l[t][d[0] ^ 1] + l[(t + 1) % 3][d[1] ^ 1]) {
            cout << l[t][d[0]] << endl;
            for (int j = (0); j < (l[t][d[0] ^ 1]); j++) {
              for (int k = (0); k < (l[t][d[0]]); k++) cout << alf[t];
              cout << endl;
            }
            for (int i = (0); i < (l[(t + 1) % 3][d[1] ^ 1]); i++) {
              for (int j = (1); j < (3); j++)
                for (int k = (0); k < (l[(t + j) % 3][d[j]]); k++)
                  cout << alf[(t + j) % 3];
              cout << endl;
            }
            return 0;
          }
        }
      }
    }
  }
  cout << -1 << endl;
  return 0;
}
