#include <bits/stdc++.h>
using namespace std;
char M[60][60];
int a, b, c, d;
int main() {
  std::ios::sync_with_stdio(false);
  for (int i = 1; i <= 50; i++)
    for (int j = 1; j <= 50; j++) M[i][j] = 'D';
  cin >> a >> b >> c >> d;
  cout << "50 50\n";
  int flag = 0;
  if (d == 1) flag = 1;
  if (!flag) a--, d--;
  for (int i = 0; i < 25; i++)
    if (a) M[i << 1 | 1][2] = 'A', a--;
  for (int i = 0; i < 25; i++)
    if (a) M[i << 1 | 1][4] = 'A', a--;
  for (int i = 0; i < 25; i++)
    if (a) M[i << 1 | 1][6] = 'A', a--;
  for (int i = 0; i < 25; i++)
    if (a) M[i << 1 | 1][8] = 'A', a--;
  for (int i = 0; i < 25; i++)
    if (b) M[i << 1 | 1][10] = 'B', b--;
  for (int i = 0; i < 25; i++)
    if (b) M[i << 1 | 1][12] = 'B', b--;
  for (int i = 0; i < 25; i++)
    if (b) M[i << 1 | 1][14] = 'B', b--;
  for (int i = 0; i < 25; i++)
    if (b) M[i << 1 | 1][16] = 'B', b--;
  for (int i = 0; i < 25; i++)
    if (c) M[i << 1 | 1][18] = 'C', c--;
  for (int i = 0; i < 25; i++)
    if (c) M[i << 1 | 1][20] = 'C', c--;
  for (int i = 0; i < 25; i++)
    if (c) M[i << 1 | 1][22] = 'C', c--;
  for (int i = 0; i < 25; i++)
    if (c) M[i << 1 | 1][24] = 'C', c--;
  if (!flag) {
    for (int j = 25; j <= 50; j++)
      for (int i = 1; i <= 50; i++) M[i][j] = 'A';
    for (int i = 0; i < 25; i++)
      if (d) M[i << 1 | 1][30] = 'D', d--;
    for (int i = 0; i < 25; i++)
      if (d) M[i << 1 | 1][32] = 'D', d--;
    for (int i = 0; i < 25; i++)
      if (d) M[i << 1 | 1][34] = 'D', d--;
    for (int i = 0; i < 25; i++)
      if (d) M[i << 1 | 1][36] = 'D', d--;
  }
  for (int i = 1; i <= 50; i++) {
    for (int j = 1; j <= 50; j++) cout << M[i][j];
    cout << '\n';
  }
  return 0;
}
