#include <bits/stdc++.h>
using namespace std;
inline int toInt(string s) {
  int v;
  istringstream sin(s);
  sin >> v;
  return v;
}
template <class T>
inline string toString(T x) {
  ostringstream sout;
  sout << x;
  return sout.str();
}
inline int readInt() {
  int x;
  scanf("%d", &x);
  return x;
}
char board[50][51];
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  for (int i = 0; i < (int)25; ++i) {
    for (int j = 0; j < (int)25; ++j) {
      for (int k = 0; k < (int)4; ++k) {
        board[i + (k >> 1) * 25][j + (k & 1) * 25] = 'A' + k;
      }
    }
  }
  for (int i = 0; i < (int)12; ++i) {
    for (int j = 0; j < (int)12; ++j) {
      if (--a > 0) board[2 * i + 1 + 25][2 * j + 1 + 25] = 'A';
      if (--b > 0) board[2 * i + 1][2 * j + 1] = 'B';
      if (--c > 0) board[2 * i + 1][2 * j + 1 + 25] = 'C';
      if (--d > 0) board[2 * i + 1 + 25][2 * j + 1] = 'D';
    }
  }
  cout << "50 50\n";
  for (int i = 0; i < (int)50; ++i) cout << board[i] << endl;
  return 0;
}
