#include <bits/stdc++.h>
using namespace std;
int n1, n2, n3, m1, m2, m3, n, area, i, j;
char a[105][105];
void afis() {
  printf("%d\n", n);
  for (int i = 1; i <= n; i++) printf("%s\n", a[i] + 1);
}
int main() {
  scanf("%d%d", &n1, &m1);
  scanf("%d%d", &n2, &m2);
  scanf("%d%d", &n3, &m3);
  area = n1 * m1 + n2 * m2 + n3 * m3;
  n = sqrt((double)area);
  if (n * n != area) {
    printf("-1");
    return 0;
  }
  if (n1 == n || m1 == n) {
    if (m1 == n) swap(n1, m1);
    if (n2 == n || m2 == n) {
      if (m2 == n) swap(n2, m2);
      if (n3 == n || m3 == n) {
        if (m3 == n) swap(n3, m3);
        for (i = 1; i <= n; i++)
          for (j = 1; j <= n; j++) {
            if (j <= m1)
              a[i][j] = 'A';
            else if (j <= m1 + m2)
              a[i][j] = 'B';
            else
              a[i][j] = 'C';
          }
        afis();
      } else {
        printf("-1");
        return 0;
      }
    } else {
      if (n2 + n3 == n || n2 + m3 == n || m2 + n3 == n || m2 + m3 == n) {
        if (n2 + m3 == n)
          swap(m3, n3);
        else if (m2 + n3 == n)
          swap(n2, m2);
        else if (m2 + m3 == n) {
          swap(n2, m2);
          swap(n3, m3);
        }
        if (m3 + m2 == n && n3 == n2) {
          swap(n2, m2);
          swap(n3, m3);
        }
        if (m2 == m3 && m2 + m1 == n) {
          for (i = 1; i <= n; i++)
            for (j = 1; j <= m1; j++) a[i][j] = 'A';
          for (i = 1; i <= n; i++)
            for (j = m1 + 1; j <= n; j++) {
              if (i <= n2)
                a[i][j] = 'B';
              else
                a[i][j] = 'C';
            }
          afis();
        } else {
          printf("-1");
          return 0;
        }
      } else {
        printf("-1");
        return 0;
      }
    }
  } else if (n2 == n || m2 == n) {
    if (m2 == n) swap(n2, m2);
    if (n1 == n || m1 == n) {
      if (m1 == n) swap(n1, m1);
      if (n3 == n || m3 == n) {
        if (m3 == n) swap(n3, m3);
        for (i = 1; i <= n; i++)
          for (j = 1; j <= n; j++) {
            if (j <= m2)
              a[i][j] = 'B';
            else if (j <= m2 + m1)
              a[i][j] = 'A';
            else
              a[i][j] = 'C';
          }
        afis();
      } else {
        printf("-1");
        return 0;
      }
    } else {
      if (n1 + n3 == n || n1 + m3 == n || m1 + n3 == n || m1 + m3 == n) {
        if (n1 + m3 == n)
          swap(m3, n3);
        else if (m1 + n3 == n)
          swap(n1, m1);
        else if (m1 + m3 == n) {
          swap(n1, m1);
          swap(n3, m3);
        }
        if (m1 + m3 == n && n1 == n3) {
          swap(n1, m1);
          swap(n3, m3);
        }
        if (m1 == m3 && m1 + m2 == n) {
          for (i = 1; i <= n; i++)
            for (j = 1; j <= m2; j++) a[i][j] = 'B';
          for (i = 1; i <= n; i++)
            for (j = m2 + 1; j <= n; j++) {
              if (i <= n1)
                a[i][j] = 'A';
              else
                a[i][j] = 'C';
            }
          afis();
        } else {
          printf("-1");
          return 0;
        }
      } else {
        printf("-1");
        return 0;
      }
    }
  } else if (n3 == n || m3 == n) {
    if (m3 == n) swap(n3, m3);
    if (n1 == n || m1 == n) {
      if (m1 == n) swap(n1, m1);
      if (n2 == n || m2 == n) {
        if (m2 == n) swap(n2, m2);
        for (i = 1; i <= n; i++)
          for (j = 1; j <= n; j++) {
            if (j <= m3)
              a[i][j] = 'C';
            else if (j <= m3 + m1)
              a[i][j] = 'A';
            else
              a[i][j] = 'B';
          }
        afis();
      } else {
        printf("-1");
        return 0;
      }
    } else {
      if (n1 + n2 == n || n1 + m2 == n || m1 + n2 == n || m1 + m2 == n) {
        if (n1 + m2 == n)
          swap(m2, n2);
        else if (m1 + n2 == n)
          swap(n1, m1);
        else if (m1 + m2 == n) {
          swap(n1, m1);
          swap(n2, m2);
        }
        if (m1 + m2 == n && n1 == n2) {
          swap(n2, m2);
          swap(n3, m3);
        }
        if (m1 == m2 && m1 + m3 == n) {
          for (i = 1; i <= n; i++)
            for (j = 1; j <= m3; j++) a[i][j] = 'C';
          for (i = 1; i <= n; i++)
            for (j = m3 + 1; j <= n; j++) {
              if (i <= n1)
                a[i][j] = 'A';
              else
                a[i][j] = 'B';
            }
          afis();
        } else {
          printf("-1");
          return 0;
        }
      } else {
        printf("-1");
        return 0;
      }
    }
  } else {
    printf("-1");
    return 0;
  }
  return 0;
}
