#include <bits/stdc++.h>
using namespace std;
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  char ans[50][50];
  if (a == 1 && b == 1 && c == 1 && d == 1) {
    for (int i = 0; i < 50; i++) {
      for (int j = 0; j < 50; j++) {
        ans[i][j] = 'D';
      }
    }
    ans[0][0] = 'A';
    ans[0][2] = 'B';
    ans[0][4] = 'C';
  } else {
    for (int i = 0; i < 20; i++) {
      for (int j = 0; j < 50; j++) {
        ans[i][j] = 'D';
      }
    }
    for (int i = 30; i < 50; i++) {
      for (int j = 0; j < 50; j++) {
        ans[i][j] = 'A';
      }
    }
    for (int i = 20; i < 25; i++) {
      for (int j = 0; j < 50; j++) {
        ans[i][j] = 'C';
      }
    }
    for (int i = 25; i < 30; i++) {
      for (int j = 0; j < 50; j++) {
        ans[i][j] = 'B';
      }
    }
    int p = 0, o = 0;
    while (a > 1) {
      ans[p][o] = 'A';
      if (o == 48) {
        p += 2;
        o = 0;
      } else
        o += 2;
      a--;
    }
    int l = 0, m = 1;
    while (b > 1) {
      ans[l][m] = 'B';
      if (m == 48 || m == 47) {
        l += 2;
        m = 1;
      } else
        m += 2;
      b--;
    }
    int k = 49, s = 49;
    while (c > 1) {
      ans[k][s] = 'C';
      if (s == 0 || s == 1) {
        k -= 2;
        s = 49;
      } else
        s -= 2;
      c--;
    }
    int z = 49, x = 48;
    while (d > 1) {
      ans[z][x] = 'D';
      if (x == 0 || x == 2) {
        z -= 2;
        x = 48;
      } else
        x -= 2;
      d--;
    }
  }
  cout << "50 50" << endl;
  for (int i = 0; i < 50; i++) {
    for (int j = 0; j < 50; j++) {
      cout << ans[i][j];
    }
    cout << endl;
  }
  return 0;
}
