#include <bits/stdc++.h>
using namespace std;
long long int pc;
void PrintCase() { printf("Case %lli: ", ++pc); }
long long int GCD(long long int a, long long int b) {
  if (a < b) swap(a, b);
  if (b == 1) return 1;
  if (!b) return a;
  if (!(a % b))
    return b;
  else
    return (a, a % b);
}
long long int LCM(long long int a, long long int b) {
  return (a * b) / GCD(a, b);
}
long long int bigmod(long long int n, long long int p) {
  if (p == 0) return 1;
  if (p == 1) return (n + 1000000007) % 1000000007;
  if (p % 2)
    return (bigmod(n, p - 1) * n + 1000000007) % 1000000007;
  else {
    long long int x = bigmod(n, p / 2);
    return (x * x + 1000000007) % 1000000007;
  }
}
long long int modinverse(long long int n) {
  return bigmod(n, 1000000007 - 2) % 1000000007;
}
bool sc[1000007];
vector<long long int> pr;
void seieve() {
  for (long long int i = 2; i <= 1000007; i++) {
    if (!sc[i]) {
      pr.push_back(i);
      for (long long int j = i * i; j <= 1000007; j += i) sc[j] = 1;
    }
  }
}
pair<long long int, long long int> pf[1000007];
void pri_fact(long long int n) {
  for (long long int i = 0; i < pr.size() && n != 1; i++) {
    pf[i].first = pr[i];
    long long int c = 0;
    while (!(n % pr[i])) {
      n /= pr[i];
      c++;
    }
    pf[i].second = c;
  }
}
vector<long long int> de;
void devisors(long long int n) {
  long long int i;
  for (i = 1; i <= sqrt(n); i++) {
    if (!(n % i) && i != sqrt(n)) {
      de.push_back(i);
      de.push_back(n % i);
    }
  }
  if ((i - 1) * (i - 1) == n) de.push_back(i - 1);
  sort(de.begin(), de.end());
}
int main(int argc, char const *argv[]) {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long int a, b, c, d, i, j, r, s;
  cin >> a >> b >> c >> d;
  s = a + b + c - 1;
  a--;
  d--;
  s = (s / 25) + (s % 25 > 0);
  s = (2 * s) + 1;
  r = (d / 25) + (d % 25 > 0);
  r = (2 * r) + 1;
  cout << r + s << " " << 50 << "\n";
  for (i = 1; i <= s; i++) {
    for (j = 1; j <= 50; j++) {
      if (i % 2)
        cout << "D";
      else {
        if (j % 2)
          cout << "D";
        else if (a) {
          a--;
          cout << "A";
        } else if (b) {
          b--;
          cout << "B";
        } else if (c) {
          c--;
          cout << "C";
        } else
          cout << "D";
      }
    }
    cout << "\n";
  }
  for (i = 1; i <= r; i++) {
    for (j = 1; j <= 50; j++) {
      if (i % 2)
        cout << "A";
      else {
        if (j % 2)
          cout << "A";
        else if (d) {
          d--;
          cout << "D";
        } else
          cout << "A";
      }
    }
    cout << "\n";
  }
  return 0;
}
