#include <bits/stdc++.h>
using namespace std;
const long long inf = 1000000000ll;
const long long inf64 = inf * inf;
const long long base = inf + 7;
const double pi = 3.1415926535897932384626433832795;
bool solve() {
  int x[3], y[3];
  for (int i = 0; i < 3; i++) {
    scanf("%d %d", &x[i], &y[i]);
  }
  for (int mask = 0; mask < (1 << 3); mask++) {
    for (int i = 0; i < 3; i++) {
      if ((1 << i) & mask) {
        swap(x[i], y[i]);
      }
    }
    vector<pair<pair<int, int>, int> > a;
    for (int i = 0; i < 3; i++) {
      a.push_back(make_pair(make_pair(x[i], y[i]), i));
    }
    sort((a).begin(), (a).end());
    if (a[0].first.first + a[1].first.first == a[2].first.first) {
      int d = a[2].first.first;
      if (a[0].first.second == a[1].first.second &&
          a[0].first.second + a[2].first.second == d) {
        vector<vector<int> > ans(d + 1, vector<int>(d + 1));
        for (int k1 = 1; k1 <= a[0].first.first; k1++)
          for (int k2 = 1; k2 <= a[0].first.second; k2++)
            ans[k1][k2] = a[0].second;
        for (int k1 = a[0].first.first + 1; k1 <= d; k1++) {
          for (int k2 = 1; k2 <= a[1].first.second; k2++) {
            ans[k1][k2] = a[1].second;
          }
        }
        for (int k1 = 1; k1 <= d; k1++) {
          for (int k2 = a[0].first.second + 1; k2 <= d; k2++) {
            ans[k1][k2] = a[2].second;
          }
        }
        cout << d << '\n';
        for (int k1 = 1; k1 <= d; k1++) {
          for (int k2 = 1; k2 <= d; k2++) {
            cout << char('A' + ans[k1][k2]);
          }
          cout << '\n';
        }
        return true;
      }
    }
    if (a[0].first.first == a[1].first.first &&
        a[0].first.first == a[2].first.first) {
      int d = a[0].first.first;
      if (a[0].first.second + a[1].first.second + a[2].first.second == d) {
        vector<vector<int> > ans(d + 1, vector<int>(d + 1));
        for (int k1 = 1; k1 <= d; k1++)
          for (int k2 = 1; k2 <= a[0].first.second; k2++)
            ans[k1][k2] = a[0].second;
        for (int k1 = 1; k1 <= d; k1++) {
          for (int k2 = a[0].first.second + 1;
               k2 <= a[0].first.second + a[1].first.second; k2++) {
            ans[k1][k2] = a[1].second;
          }
        }
        for (int k1 = 1; k1 <= d; k1++) {
          for (int k2 = a[0].first.second + a[1].first.second + 1; k2 <= d;
               k2++) {
            ans[k1][k2] = a[2].second;
          }
        }
        cout << d << '\n';
        for (int k1 = 1; k1 <= d; k1++) {
          for (int k2 = 1; k2 <= d; k2++) {
            cout << char('A' + ans[k1][k2]);
          }
          cout << '\n';
        }
        return true;
      }
    }
    for (int i = 0; i < 3; i++) {
      if ((1 << i) & mask) {
        swap(x[i], y[i]);
      }
    }
  }
  puts("-1");
  return true;
}
int main() {
  solve();
  return 0;
}
