#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long a, b, c, d;
  cin >> a >> b >> c >> d;
  a--;
  b--;
  c--;
  d--;
  cout << "50 50" << endl;
  char s[51][51];
  for (long long i = 0, _n = (51); i < _n; i++) {
    for (long long j = 0, _n = (51); j < _n; j++) {
      s[i][j] = '.';
    }
  }
  long long i = 0;
  long long j = 0;
  while (a != 0) {
    s[j][i] = 'A';
    i = i + 2;
    if (i >= 50) {
      j += 2;
      i = 0;
    }
    a--;
  }
  for (long long i = 0, _n = (7); i < _n; i++) {
    for (long long j = 0, _n = (50); j < _n; j++) {
      if (s[i][j] == '.') s[i][j] = 'B';
    }
  }
  for (long long j = 0, _n = (50); j < _n; j++) {
    s[7][j] = 'C';
  }
  i = 0;
  j = 8;
  while (b != 0) {
    s[j][i] = 'B';
    i = i + 2;
    if (i >= 50) {
      j += 2;
      i = 0;
    }
    b--;
  }
  for (long long i = (8), _b = (14); i <= _b; i++) {
    for (long long j = 0, _n = (50); j < _n; j++) {
      if (s[i][j] == '.') s[i][j] = 'C';
    }
  }
  for (long long j = 0, _n = (50); j < _n; j++) {
    s[15][j] = 'D';
  }
  i = 0;
  j = 16;
  while (c != 0) {
    s[j][i] = 'C';
    i = i + 2;
    if (i >= 50) {
      j += 2;
      i = 0;
    }
    c--;
  }
  for (long long i = (16), _b = (22); i <= _b; i++) {
    for (long long j = 0, _n = (50); j < _n; j++) {
      if (s[i][j] == '.') s[i][j] = 'D';
    }
  }
  for (long long j = 0, _n = (50); j < _n; j++) {
    s[23][j] = 'A';
  }
  i = 0;
  j = 24;
  while (d != 0) {
    s[j][i] = 'D';
    i = i + 2;
    if (i >= 50) {
      j += 2;
      i = 0;
    }
    d--;
  }
  for (long long i = (24), _b = (50); i <= _b; i++) {
    for (long long j = 0, _n = (50); j < _n; j++) {
      if (s[i][j] == '.') s[i][j] = 'A';
    }
  }
  for (long long i = 0, _n = (50); i < _n; i++) {
    for (long long j = 0, _n = (50); j < _n; j++) {
      cout << s[i][j];
    }
    cout << endl;
  }
}
