#include <bits/stdc++.h>
using namespace std;
long long int s[50][50];
long long int x[4] = {-1, 0, 1, 0};
long long int y[4] = {0, 1, 0, -1};
bool valid(long long int i, long long int j) {
  return (i >= 0 && i < 50 && j >= 0 && j < 50);
}
bool side(long long int val, long long int i, long long int j) {
  for (long long int k = 0; k < 4; k++) {
    if (valid(i + x[k], j + y[k])) {
      if (val == s[i + x[k]][j + y[k]]) return false;
    }
  }
  return true;
}
void fill(long long int val, long long int x, long long int y,
          long long int oc) {
  for (long long int i = x; i < 50; i += 2) {
    for (long long int j = y; j < 50; j += 2) {
      if (s[i][j] == 0) {
        if (oc == 0) return;
        s[i][j] = val;
        oc--;
      }
    }
  }
}
void lfill(long long int val, long long int oc) {
  for (long long int i = 1; i < 50; i += 2) {
    for (long long int j = 1; j < 50; j += 2) {
      if (s[i][j] == 0) {
        if (oc == 0) return;
        s[i][j] = val;
        oc--;
      }
    }
  }
}
void conv(long long int val) {
  for (long long int i = 0; i < 50; i++) {
    for (long long int j = 0; j < 50; j++) {
      if (s[i][j] == 0) s[i][j] = val;
    }
  }
}
void print() {
  for (long long int i = 0; i < 50; i++) {
    for (long long int j = 0; j < 50; j++) {
      if (s[i][j] == 1)
        cout << "A";
      else if (s[i][j] == 2)
        cout << "B";
      else if (s[i][j] == 3)
        cout << "C";
      else if (s[i][j] == 4)
        cout << "D";
      else
        cout << ".";
    }
    cout << "\n";
  }
}
int main() {
  long long int a, b, c, d;
  cin >> a >> b >> c >> d;
  long long int t = min(min(a, b), min(c, d));
  cout << "50 50\n";
  if (t == a) {
    t -= 1;
    fill(1, 0, 0, t);
    fill(2, 0, 1, t);
    fill(3, 1, 0, t);
    fill(4, 1, 1, t);
    a -= t;
    b -= t;
    c -= t;
    d -= t;
    lfill(2, b);
    lfill(3, c);
    lfill(4, d);
    conv(1);
    print();
  } else if (t == b) {
    t -= 1;
    fill(2, 0, 0, t);
    fill(1, 0, 1, t);
    fill(3, 1, 0, t);
    fill(4, 1, 1, t);
    a -= t;
    b -= t;
    c -= t;
    d -= t;
    lfill(3, c);
    lfill(4, d);
    lfill(1, a);
    conv(2);
    print();
  } else if (t == c) {
    t -= 1;
    fill(3, 0, 0, t);
    fill(1, 0, 1, t);
    fill(2, 1, 0, t);
    fill(4, 1, 1, t);
    a -= t;
    b -= t;
    c -= t;
    d -= t;
    lfill(1, a);
    lfill(2, b);
    lfill(4, d);
    conv(3);
    print();
  } else {
    t -= 1;
    fill(4, 0, 0, t);
    fill(1, 0, 1, t);
    fill(3, 1, 0, t);
    fill(2, 1, 1, t);
    a -= t;
    b -= t;
    c -= t;
    d -= t;
    lfill(2, b);
    lfill(3, c);
    lfill(1, a);
    conv(4);
    print();
  }
  return 0;
}
