#include <bits/stdc++.h>
using namespace std;
void assign(char** grid, char back, char c1, int cnt) {
  for (int i = 1; i < 25; i += 2) {
    for (int j = 1; j < 50; j += 2) {
      if (cnt == 0) return;
      if (grid[i][j] != back) continue;
      grid[i][j] = c1;
      cnt--;
    }
  }
}
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  char** ans = new char*[50];
  for (int i = 0; i < 50; i++) ans[i] = new char[50];
  for (int i = 0; i < 25; i++)
    for (int j = 0; j < 50; j++) ans[i][j] = 'A';
  for (int i = 25; i < 50; i++)
    for (int j = 0; j < 50; j++) ans[i][j] = 'B';
  assign(ans, 'A', 'B', b - 1);
  assign(ans, 'A', 'C', c);
  assign(ans + 25, 'B', 'A', a - 1);
  assign(ans + 25, 'B', 'D', d);
  cout << "50 50\n";
  for (int i = 0; i < 50; i++) {
    for (int j = 0; j < 50; j++) cout << ans[i][j];
    cout << '\n';
  }
}
