#include <bits/stdc++.h>
using namespace std;
int d12, d23, d13;
int nrb1, nrb2, nrb3;
int subb2;
int subb3, subblui23;
bool calc();
int main() {
  cin >> nrb1 >> nrb2 >> nrb3 >> d12 >> d13 >> d23;
  if (!calc())
    cout << -1;
  else {
    string a, b, c, d;
    int dif = d23 - (subb2 + subb3 - 2 * subblui23);
    for (int i(0); i < nrb1; i++) {
      a += "a";
      b += "b";
      if (subb2)
        c += "b", nrb2--, subb2--;
      else
        c += "a";
      if (subblui23)
        d += "b", subblui23--, subb3--, nrb3--;
      else if (i + subb3 == nrb1)
        d += "b", subb3--, nrb3--;
      else
        d += "a";
    }
    if ((dif - nrb2 - nrb3) & 1) {
      cout << -1;
      return 0;
    }
    int comun = (-dif + nrb2 + nrb3) / 2;
    while (nrb2 || nrb3) {
      a += "a";
      b += "a";
      if (comun)
        comun--, nrb2--, nrb3--, c += "b", d += "b";
      else if (nrb2)
        nrb2--, c += "b", d += "a";
      else
        nrb3--, c += "a", d += "b";
    }
    cout << a.size() << "\n" + a + "\n" + b + "\n" + c + "\n" + d + "\n";
  }
  return 0;
}
bool calc() {
  subb2 = -1;
  for (int i(0); i <= nrb2 && i <= nrb1; i++)
    if (nrb1 + nrb2 - 2 * i == d12) subb2 = i;
  if (subb2 == -1) return false;
  subb3 = -1;
  for (int i(0); i <= nrb3 && i <= nrb1; i++)
    if (nrb1 + nrb3 - 2 * i == d13) subb3 = i;
  if (subb3 == -1) return false;
  subblui23 = -1;
  for (int i(0); i <= subb3 && i <= subb2; i++) {
    if (subb3 + subb2 - i <= nrb1) {
      int dif = d23 - subb3 - subb2 + 2 * i;
      if (dif < 0) continue;
      if (dif >= abs(nrb2 - subb2 - (nrb3 - subb3)) &&
          dif <= nrb2 - subb2 + nrb3 - subb3) {
        subblui23 = i;
        break;
      }
    }
  }
  return subblui23 != -1;
}
