#include <bits/stdc++.h>
using namespace std;
const int maxn = 50;
char Map[maxn][maxn];
char col[4] = {'A', 'B', 'C', 'D'};
int main() {
  int a[4];
  for (int i = 0; i < 4; i++) scanf("%d", &a[i]);
  for (int i = 0; i < maxn; i++)
    for (int j = 0; j < maxn; j++) Map[i][j] = col[0];
  a[0]--;
  a[1]--;
  int flag = 0;
  for (int i = 1; i < maxn && flag == 0; i += 2) {
    for (int j = 1; j < maxn && flag == 0; j++) {
      for (int k = 1; k < 4; k++) {
        if (a[k] != 0 && Map[i - 1][j] != col[k] && Map[i][j - 1] != col[k]) {
          Map[i][j] = col[k];
          a[k]--;
          break;
        }
      }
      if (a[1] + a[2] + a[3] == 0) flag = i + 2;
    }
  }
  for (int i = flag; i < maxn; i++)
    for (int j = 0; j < maxn; j++) Map[i][j] = col[1];
  int cc = 0;
  for (int i = flag + 1; i < maxn && cc == 0; i += 2)
    for (int j = 1; j < maxn && cc == 0; j++) {
      if (a[0] != 0 && Map[i - 1][j] != col[0] && Map[i][j - 1] != col[0]) {
        a[0]--;
        Map[i][j] = col[0];
      }
      if (a[0] == 0) cc = 1;
    }
  printf("50 50\n");
  for (int i = 0; i < maxn; i++) {
    for (int j = 0; j < maxn; j++) printf("%c", Map[i][j]);
    printf("\n");
  }
  return 0;
}
