#include <bits/stdc++.h>
using namespace std;
long long int gcd(long long int a, long long int b) {
  if (a == 0) return b;
  return gcd(b % a, a);
}
int mul_mod(int a, int b, int m) {
  int x = 0, y = a;
  while (b > 0) {
    if (b & 1) {
      x = (x + y) % m;
    }
    y = (y + y) % m;
    b >>= 1;
  }
  return x;
}
long long int power(long long int x, long long int y, long long int p) {
  long long int res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
int main() {
  int a, b, c, d;
  cin >> a >> b >> c >> d;
  char m[40][50];
  int cnt = b - 1;
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 50; j++) {
      m[i][j] = 'A';
      if (i % 2 == 1 && j % 2 == 1 && cnt > 0) {
        m[i][j] = 'B';
        cnt--;
      }
    }
  }
  cnt = a - 1;
  for (int i = 10; i < 20; i++) {
    for (int j = 0; j < 50; j++) {
      m[i][j] = 'B';
      if (i % 2 == 1 && j % 2 == 1 && cnt > 0) {
        m[i][j] = 'A';
        cnt--;
      }
    }
  }
  cnt = d - 1;
  for (int i = 20; i < 30; i++) {
    for (int j = 0; j < 50; j++) {
      m[i][j] = 'C';
      if (i % 2 == 1 && j % 2 == 1 && cnt > 0) {
        m[i][j] = 'D';
        cnt--;
      }
    }
  }
  cnt = c - 1;
  for (int i = 30; i < 40; i++) {
    for (int j = 0; j < 50; j++) {
      m[i][j] = 'D';
      if (i % 2 == 1 && j % 2 == 1 && cnt > 0) {
        m[i][j] = 'C';
        cnt--;
      }
    }
  }
  cout << 40 << " " << 50 << endl;
  for (int i = 0; i < 40; i++) {
    for (int j = 0; j < 50; j++) cout << m[i][j];
    cout << endl;
  }
  return 0;
}
