#include <bits/stdc++.h>
using namespace std;
char s[100][100];
int main() {
  int a, b, c, d;
  scanf("%d%d%d%d", &a, &b, &c, &d);
  printf("50 50\n");
  for (int i = 1; i <= 50; i++)
    for (int j = 1; j <= 25; j++) s[i][j] = 'A';
  for (int i = 1; i <= 50; i++)
    for (int j = 26; j <= 50; j++) s[i][j] = 'B';
  a--;
  b--;
  int pbi = 1, pbj = 1;
  if (b >= 2) {
    s[pbi][pbj] = 'B';
    b--;
  }
  while (b) {
    if (pbj <= 22) {
      pbj += 2;
      s[pbi][pbj] = 'B';
      b--;
    } else {
      pbi += 2;
      pbj = 1;
      s[pbi][pbj] = 'B';
      b--;
    }
  }
  while (c) {
    if (pbj <= 22) {
      pbj += 2;
      s[pbi][pbj] = 'C';
      c--;
    } else {
      pbi += 2;
      pbj = 1;
      s[pbi][pbj] = 'C';
      c--;
    }
  }
  int pai = 1, paj = 27;
  if (a >= 2) {
    s[pai][paj] = 'A';
    a--;
  }
  while (a) {
    if (paj <= 48) {
      paj += 2;
      s[pai][paj] = 'A';
      --a;
    } else {
      pai += 2;
      paj = 27;
      s[pai][paj] = 'A';
      --a;
    }
  }
  while (d) {
    if (paj <= 48) {
      paj += 2;
      s[pai][paj] = 'D';
      d--;
    } else {
      pai += 2;
      paj = 27;
      s[pai][paj] = 'D';
      d--;
    }
  }
  for (int i = 1; i <= 50; i++) {
    for (int j = 1; j <= 50; j++) printf("%c", s[i][j]);
    printf("\n");
  }
  return 0;
}
