#include <bits/stdc++.h>
using namespace std;
const long long LLINF = 8e18;
const int MOD = 1e9 + 7;
const int INF = 2e9;
const int N = 1e5;
int a, b, c, d;
string s[50];
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  for (int i = 0; i < 50; i++) {
    for (int j = 0; j < 50; j++) {
      s[i] += '.';
    }
  }
  cin >> a >> b >> c >> d;
  a--;
  b--;
  c--;
  d--;
  cout << "50 50\n";
  for (int i = 0; i < 25; i++) {
    for (int j = 0; j < 25; j++) {
      s[i][j] = 'A';
    }
  }
  for (int i = 0; i < 25; i++) {
    for (int j = 25; j < 50; j++) {
      s[i][j] = 'B';
    }
  }
  for (int i = 25; i < 50; i++) {
    for (int j = 0; j < 25; j++) {
      s[i][j] = 'C';
    }
  }
  for (int i = 25; i < 50; i++) {
    for (int j = 25; j < 50; j++) {
      s[i][j] = 'D';
    }
  }
  if (b > 0)
    for (int i = 1; i < 24; i += 2) {
      for (int j = 1; j < 24; j += 2) {
        s[i][j] = 'B';
        b--;
        if (b == 0) break;
      }
      if (b == 0) break;
    }
  if (a > 0)
    for (int i = 1; i < 24; i += 2) {
      for (int j = 26; j < 49; j += 2) {
        s[i][j] = 'A';
        a--;
        if (a == 0) break;
      }
      if (a == 0) break;
    }
  if (d > 0)
    for (int i = 26; i < 49; i += 2) {
      for (int j = 1; j < 24; j += 2) {
        s[i][j] = 'D';
        d--;
        if (d == 0) break;
      }
      if (d == 0) break;
    }
  if (c > 0)
    for (int i = 26; i < 49; i += 2) {
      for (int j = 26; j < 49; j += 2) {
        s[i][j] = 'C';
        c--;
        if (c == 0) break;
      }
      if (c == 0) break;
    }
  for (int i = 0; i < 50; i++) {
    cout << s[i] << '\n';
  }
  return 0;
}
