#include <bits/stdc++.h>   using namespace std;   long long modinverse(long long a, long long m) {     long long m0 = m;     long long y = 0, x = 1;     if (m == 1) return 0;     while (a > 1) {       long long q = a / m, t = m;       m = a % m, a = t;       t = y;       y = x - q * y;       x = t;     }     if (x < 0) x += m0;     return x;   }   long long mod_pow(long long a, long long n, long long p) {     long long ans = 1;     while (n) {       if (n & 1) ans = (ans * a) % p;       a = (a * a) % p;       n >>= 1;     }     return ans;   }   long long prime_mod_pow(long long a, long long n, long long p) {     long long ans = 1;     n %= p - 1;     while (n) {       if (n & 1) ans = (ans * a) % p;       a = (a * a) % p;       n >>= 1;     }     return ans;   }   long long gcd(long long a, long long b) {     if (b == 0) return a;     return gcd(b, a % b);   }   long long ext_gcd(long long l, long long r, long long &x, long long &y) {     if (l == 0) {       x = 0;       y = 1;       return r;     }     long long x1, y1, g;     g = ext_gcd(r % l, l, x1, y1);     x = y1 - (r / l) * x1;     y = x1;     return g;   }   const long long dx[4] = {1, 0, -1, 0}, dy[4] = {0, 1, 0, -1};   long long ok(long long x, long long y, long long n, long long m) {     return (x >= 0 and y >= 0 and x < n and y < m);   }   long long num_div;   map<long long, long long> pr_factor;   void factorise(long long n) {     long long count = 0;     while (!(n % 2)) {       n >>= 1;       count++;     }     if (count) num_div *= (count + 1);     pr_factor[2] = count;     for (long long i = 3; i <= sqrt(n); i += 2) {       count = 0;       while (n % i == 0) {         count++;         n /= i;       }       if (count) num_div *= (count + 1);       pr_factor[i] = count;     }     if (n > 2) num_div *= 2;     pr_factor[n] = 1;   }   bool type1(long long x1, long long x2, long long x3, long long y1, long long y2,              long long y3, char c1, char c2, char c3) {     if (x1 == x2 + x3 and y2 == y3 and x1 == y1 + y2) {       cout << x1 <<   n ;       for (long long i = 0; i < y1; i++) {         for (long long j = 0; j < x1; j++) cout << c1;         cout <<   n ;       }       for (long long i = 0; i < y2; i++) {         for (long long j = 0; j < x2; j++) cout << c2;         for (long long j = 0; j < x3; j++) cout << c3;         cout <<   n ;       }       return true;     }     return false;   }   bool type2(long long x1, long long x2, long long x3, long long y1, long long y2,              long long y3, char c1, char c2, char c3) {     if (x1 == x2 and x2 == x3 and x1 == y1 + y2 + y3) {       cout << x1 <<   n ;       for (long long i = 0; i < y1; i++) {         for (long long j = 0; j < x1; j++) cout << c1;         cout <<   n ;       }       for (long long i = 0; i < y2; i++) {         for (long long j = 0; j < x1; j++) cout << c2;         cout <<   n ;       }       for (long long i = 0; i < y3; i++) {         for (long long j = 0; j < x3; j++) cout << c3;         cout <<   n ;       }       return true;     }     return false;   }   void solve() {     long long x1, x2, x3, y1, y2, y3;     cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3;     vector<pair<long long, long long> > a;     a.push_back(make_pair(x1, y1));     a.push_back(make_pair(y1, x1));     vector<pair<long long, long long> > b;     b.push_back(make_pair(x2, y2));     b.push_back(make_pair(y2, x2));     vector<pair<long long, long long> > c;     c.push_back(make_pair(x3, y3));     c.push_back(make_pair(y3, x3));     for (long long i = 0; i < a.size(); i++) {       long long X1 = a[i].first, Y1 = a[i].second;       for (long long j = 0; j < b.size(); j++) {         long long X2 = b[j].first, Y2 = b[j].second;         for (long long k = 0; k < c.size(); k++) {           long long X3 = c[k].first, Y3 = c[k].second;           if (type1(X1, X2, X3, Y1, Y2, Y3,  A ,  B ,  C )) return;           if (type1(X1, X3, X2, Y1, Y3, Y2,  A ,  C ,  B )) return;           if (type1(X2, X1, X3, Y2, Y1, Y3,  B ,  A ,  C )) return;           if (type1(X2, X3, X1, Y2, Y3, Y1,  B ,  C ,  A )) return;           if (type1(X3, X1, X2, Y3, Y1, Y2,  C ,  A ,  B )) return;           if (type1(X3, X2, X1, Y3, Y2, Y1,  C ,  B ,  A )) return;           if (type2(X1, X2, X3, Y1, Y2, Y3,  A ,  B ,  C )) return;           if (type2(X1, X3, X2, Y1, Y3, Y2,  A ,  C ,  B )) return;           if (type2(X2, X1, X3, Y2, Y1, Y3,  B ,  A ,  C )) return;           if (type2(X2, X3, X1, Y2, Y3, Y1,  B ,  C ,  A )) return;           if (type2(X3, X1, X2, Y3, Y1, Y2,  C ,  A ,  B )) return;           if (type2(X3, X2, X1, Y3, Y2, Y1,  C ,  B ,  A )) return;         }       }     }     cout << -1 <<   n ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     cout.tie(NULL);     int t = 1;     long long tc = 1;     while (t--) {       solve();       tc++;     }   }