#include <bits/stdc++.h>
template <class t>
void maxi(t &x, t y) {
  if (x < y) x = y;
}
template <class t>
void mini(t &x, t y) {
  if (x > y) x = y;
}
using namespace std;
char ans[305][305];
int main() {
  ios::sync_with_stdio(0);
  cout << setprecision(10) << fixed;
  int a[4];
  for (int(i) = 0; (i) < (4); (i)++) {
    cin >> a[i];
    a[i]--;
  }
  int st = 0;
  for (int(i) = 0; (i) < (4); (i)++) {
    char c = 'A' + i, f = 'A' + (3 - i);
    int j = st + 1, k = 1;
    int re = a[i];
    while (re) {
      if (k > 48) j += 2, k = 1;
      ans[j][k] = c;
      k += 2, re--;
    }
    j += 2;
    for (int(k) = st; (k) < (j); (k)++)
      for (int(i) = 0; (i) < (50); (i)++)
        if (!ans[k][i]) ans[k][i] = f;
    st = j;
  }
  cout << st << ' ' << 50 << endl;
  for (int(i) = 0; (i) < (st); (i)++) cout << ans[i] << endl;
  return 0;
}
