#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  ;
  int a1, b, c, d;
  cin >> a1 >> b >> c >> d;
  vector<vector<char>> a(20, vector<char>(50, '.'));
  cout << 20 << " " << 50 << endl;
  for (int j = 0; j < 50; ++j) a[1][j] = 'A';
  for (int j = 0; j < 50; ++j) a[4][j] = 'A';
  for (int j = 0; j < 50; ++j) a[6][j] = 'D';
  for (int j = 0; j < 50; ++j) a[9][j] = 'D';
  for (int j = 0; j < 50; ++j) a[11][j] = 'B';
  for (int j = 0; j < 50; ++j) a[14][j] = 'B';
  for (int j = 0; j < 50; ++j) a[16][j] = 'C';
  for (int j = 0; j < 50; ++j) a[19][j] = 'C';
  --a1;
  --b;
  --c;
  --d;
  a[2][0] = 'A';
  a[3][0] = 'A';
  a[7][0] = 'D';
  a[8][0] = 'D';
  a[12][0] = 'B';
  a[13][0] = 'B';
  a[17][0] = 'C';
  a[18][0] = 'C';
  for (int j = 0; j < 50; j += 2)
    if (b > 0) {
      a[0][j] = 'B';
      --b;
    }
  for (int j = 1; j < 50; j += 2)
    if (c > 0) {
      a[0][j] = 'C';
      --c;
    }
  for (int j = 1; j < 50; j += 2)
    if (b > 0) {
      a[2][j] = 'B';
      --b;
    }
  for (int j = 2; j < 50; j += 2)
    if (c > 0) {
      a[2][j] = 'C';
      --c;
    }
  for (int j = 2; j < 50; j += 2)
    if (b > 0) {
      a[3][j] = 'B';
      --b;
    }
  for (int j = 1; j < 50; j += 2)
    if (c > 0) {
      a[3][j] = 'C';
      --c;
    }
  for (int j = 0; j < 50; j += 2)
    if (b > 0) {
      a[5][j] = 'B';
      --b;
    }
  for (int j = 1; j < 50; j += 2)
    if (c > 0) {
      a[5][j] = 'C';
      --c;
    }
  for (int j = 1; j < 50; j += 2)
    if (a1 > 0) {
      a[7][j] = 'A';
      --a1;
    }
  for (int j = 2; j < 50; j += 2)
    if (a1 > 0) {
      a[8][j] = 'A';
      --a1;
    }
  for (int j = 0; j < 50; j += 2)
    if (a1 > 0) {
      a[10][j] = 'A';
      --a1;
    }
  for (int j = 1; j < 50; j += 2)
    if (a1 > 0) {
      a[12][j] = 'A';
      --a1;
    }
  for (int j = 2; j < 50; j += 2)
    if (a1 > 0) {
      a[13][j] = 'A';
      --a1;
    }
  for (int j = 2; j < 50; j += 2)
    if (d > 0) {
      a[12][j] = 'D';
      --d;
    }
  for (int j = 1; j < 50; j += 2)
    if (d > 0) {
      a[13][j] = 'D';
      --d;
    }
  for (int j = 0; j < 50; j += 2)
    if (d > 0) {
      a[15][j] = 'D';
      --d;
    }
  for (int j = 2; j < 50; j += 2)
    if (d > 0) {
      a[17][j] = 'D';
      --d;
    }
  for (int j = 1; j < 50; j += 2)
    if (d > 0) {
      a[18][j] = 'D';
      --d;
    }
  for (int i = 0; i <= 5; ++i)
    for (auto& elem : a[i])
      if (elem == '.') elem = 'A';
  for (int i = 6; i <= 10; ++i)
    for (auto& elem : a[i])
      if (elem == '.') elem = 'D';
  for (int i = 11; i <= 15; ++i)
    for (auto& elem : a[i])
      if (elem == '.') elem = 'B';
  for (int i = 16; i <= 19; ++i)
    for (auto& elem : a[i])
      if (elem == '.') elem = 'C';
  for (auto elem : a) {
    for (auto elem1 : elem) cout << elem1;
    cout << endl;
  }
  return 0;
}
