#include <bits/stdc++.h>
using namespace std;
int a[60], b[60], ab[60], ba[60], aa[60], bb[60], t[60], f[60];
int n, m, k, x;
char ch[4] = "ABC";
int get(int i) {
  int f1 = i / 27;
  int t1 = i / 9 % 3;
  int f2 = i / 3 % 3;
  int t2 = i % 3;
  int ret = 0;
  if (t1 == 0 && f1 == 2) ret += aa[k];
  if (t2 == 0 && f2 == 2) ret += bb[k];
  if (t1 == 0 && f2 == 2) ret += ab[k];
  if (t2 == 0 && f1 == 2) ret += ba[k];
  return ret;
}
string s1, s2;
bool ok1(int ff, int tt, int nm) {
  s1 = "";
  s1 += ch[ff];
  if (n == 1) return nm == 0;
  int now = 2;
  if (nm == 0) {
    for (int i = 1; i <= n - 2; i++) s1 += ch[1];
    s1 += ch[tt];
    return !(ff == 0 && tt == 2 && n == 2);
  }
  if (n == 2) {
    s1 += ch[tt];
    return nm == (ff == 0 && tt == 2);
  }
  if (ff == 0) {
    s1 += ch[2];
    nm--;
    now++;
  }
  while (nm && now <= n - 2) {
    s1 += "AC";
    now += 2;
    nm--;
  }
  if (nm > 0 && now == n - 1 && tt == 2) {
    s1 += ch[0];
    nm--;
    now++;
  }
  if (now < n)
    for (int i = now; i < n; i++) s1 += ch[1];
  s1 += ch[tt];
  return nm == 0;
}
bool ok2(int ff, int tt, int nm) {
  s2 = "";
  s2 += ch[ff];
  if (m == 1) return nm == 0;
  int now = 2;
  if (nm == 0) {
    for (int i = 1; i <= m - 2; i++) s2 += ch[1];
    s2 += ch[tt];
    return !(ff == 0 && tt == 2 && m == 2);
  }
  if (m == 2) {
    s2 += ch[tt];
    return nm == (ff == 0 && tt == 2);
  }
  if (ff == 0) {
    s2 += ch[2];
    nm--;
    now++;
  }
  while (nm && now <= m - 2) {
    s2 += "AC";
    now += 2;
    nm--;
  }
  if (nm > 0 && now == m - 1 && tt == 2) {
    s2 += ch[0];
    nm--;
    now++;
  }
  if (now < m)
    for (int i = now; i < m; i++) s2 += ch[1];
  s2 += ch[tt];
  return nm == 0;
}
int main() {
  int i, j;
  memset(a, 0, sizeof(a));
  memset(b, 0, sizeof(b));
  memset(ab, 0, sizeof(ab));
  memset(ba, 0, sizeof(ba));
  memset(aa, 0, sizeof(aa));
  memset(bb, 0, sizeof(bb));
  a[1] = 1;
  b[2] = 1;
  t[1] = f[1] = 1;
  t[2] = f[2] = 2;
  for (i = 3; i <= 50; i++) {
    a[i] = a[i - 2] + a[i - 1];
    b[i] = b[i - 2] + b[i - 1];
    f[i] = f[i - 2];
    t[i] = t[i - 1];
    ab[i] = ab[i - 2] + ab[i - 1] + (t[i - 2] == 1 && f[i - 1] == 2);
    ba[i] = ba[i - 2] + ba[i - 1] + (t[i - 2] == 2 && f[i - 1] == 1);
    aa[i] = aa[i - 2] + aa[i - 1] + (t[i - 2] == 1 && f[i - 1] == 1);
    bb[i] = bb[i - 2] + bb[i - 1] + (t[i - 2] == 2 && f[i - 1] == 2);
  }
  while (scanf("%d%d%d%d", &k, &x, &n, &m) != EOF) {
    bool f = false;
    for (i = 0; i < 81; i++) {
      int tx = x;
      if (n == 1 && (i / 27 != i / 9 % 3)) continue;
      if (m == 1 && (i / 3 % 3 != i % 3)) continue;
      int ss = get(i);
      tx -= ss;
      if (tx < 0) continue;
      for (j = 0; j <= tx; j += a[k]) {
        if ((tx - j) % b[k] != 0) continue;
        if (!ok1(i / 27, i / 9 % 3, j / a[k])) continue;
        if (ok2(i / 3 % 3, i % 3, (tx - j) / b[k])) {
          f = true;
          break;
        }
      }
      if (f) break;
    }
    if (f == false)
      printf("Happy new year!\n");
    else {
      cout << s1 << endl;
      cout << s2 << endl;
    }
  }
  return 0;
}
