#include <bits/stdc++.h>
using namespace std;
int GCD(int a, int b) {
  if (!a) return b;
  return GCD(b % a, a);
}
void init() {}
int k, x, n, m;
bool buildStr(int head, int tail, int cnt, int len, string &s) {
  s = "";
  if (head) s += 'C';
  for (int i = (0); i < (int)(cnt); i++) s += "AC";
  while ((int)s.size() < len - tail) s += 'Z';
  if (tail) s += 'A';
  return (int)s.size() == len;
}
bool ok(int h1, int t1, int c1, int h2, int t2, int c2) {
  int f1, e1, f2, e2;
  if (h1)
    f1 = 'C';
  else
    f1 = 'Z';
  if (h2)
    f2 = 'C';
  else
    f2 = 'Z';
  if (t1)
    e1 = 'A';
  else
    e1 = 'Z';
  if (t2)
    e2 = 'A';
  else
    e2 = 'Z';
  for (int i = (3); i < (int)(k + 1); i++) {
    int c = c1 + c2 + (e1 == 'A' && f2 == 'C');
    int f = f1, e = e2;
    if (c > x) return false;
    c1 = c2;
    f1 = f2;
    e1 = e2;
    c2 = c;
    f2 = f;
    e2 = e;
  }
  return c2 == x;
}
int main() {
  clock_t startTime = clock();
  init();
  cin >> k >> x >> n >> m;
  for (int a = (0); a < (int)(2); a++) {
    for (int b = (0); b < (int)(2); b++) {
      for (int c = (0); c < (int)(2); c++) {
        for (int d = (0); d < (int)(2); d++) {
          for (int z = (0); z < (int)(51); z++) {
            for (int y = (0); y < (int)(51); y++) {
              string s1, s2;
              if (ok(a, b, z, c, d, y) && buildStr(a, b, z, n, s1) &&
                  buildStr(c, d, y, m, s2)) {
                cout << s1 << "\n" << s2 << "\n";
                return 0;
              }
            }
          }
        }
      }
    }
  }
  cout << "Happy new year!";
  clock_t endTime = clock();
  fprintf(stderr, "\nTime: %.5f seconds\n",
          double(endTime - startTime) / CLOCKS_PER_SEC);
  return 0;
}
