#include <bits/stdc++.h>
using namespace std;
const int N = 60;
long long num[N][5], n0[N], n1[N], hd[N], tl[N];
inline int cc(char hd, char tl, int len) {
  if (len == 1) return 0;
  int res = 0;
  if (hd == 'A') {
    res += (len - 1) / 2;
    if (len % 2 == 0 && tl == 'C') res++;
    return res;
  } else {
    res += (len - 2) / 2;
    if (len % 2 == 1 && tl == 'C') res++;
    return res;
  }
}
inline int cd(char hd, char tl, int len) {
  if (len == 2 && hd == 'A' && tl == 'C')
    return 1;
  else
    return 0;
}
inline int chk(char hd0, char tl0, char hd1, char tl1, int st) {
  if (!st) return tl0 == 'A' && hd0 == 'C';
  if (st == 1) return tl0 == 'A' && hd1 == 'C';
  if (st == 2) return tl1 == 'A' && hd0 == 'C';
  return tl1 == 'A' && hd1 == 'C';
}
void output(char hd, char tl, int len, int num) {
  if (len == 1) {
    printf("%c", hd);
    return;
  }
  if (len == 2) {
    printf("%c%c", hd, tl);
    return;
  }
  if (num == 0) {
    printf("%c", hd);
    for (int i = 1; i < len - 1; i++) printf("%c", 'B');
    printf("%c", tl);
    return;
  }
  if (hd == 'A') {
    for (int i = 0; i < num; i++) printf("AC");
    for (int i = 2 * num; i < len - 1; i++) printf("B");
    if (num * 2 < len) printf("%c", tl);
    return;
  } else {
    printf("%c", hd);
    for (int i = 0; i < num; i++) printf("AC");
    for (int i = 2 * num + 1; i < len - 1; i++) printf("B");
    if (num * 2 + 1 < len) printf("%c", tl);
    return;
  }
}
int main() {
  int k, m, n, x;
  scanf("%d%d%d%d", &k, &x, &n, &m);
  memset(n0, 0, sizeof(n0));
  memset(n1, 0, sizeof(n1));
  memset(num, 0, sizeof(num));
  n1[1] = n0[2] = 0;
  n0[1] = n1[2] = 1;
  hd[1] = tl[1] = 0;
  hd[2] = tl[2] = 1;
  for (int i = 3; i < k + 1; i++) {
    n0[i] = n0[i - 1] + n0[i - 2];
    n1[i] = n1[i - 1] + n1[i - 2];
    for (int j = 0; j < 4; j++) num[i][j] = num[i - 1][j] + num[i - 2][j];
    num[i][tl[i - 2] * 2 + hd[i - 1]]++;
    tl[i] = tl[i - 1];
    hd[i] = hd[i - 2];
  }
  int fg = 0, mx0, mn0, mx1, mn1, ans0, ans1;
  long long xx, t0, t1;
  char hd0, tl0, hd1, tl1;
  for (int i = 0; i < 81; i++) {
    hd0 = 'A' + i / 27;
    tl0 = 'A' + i % 27 / 9;
    hd1 = 'A' + i % 9 / 3;
    tl1 = 'A' + i % 3;
    if ((n == 1 && hd0 != tl0) || (m == 1 && hd1 != tl1)) continue;
    xx = x;
    for (int j = 0; j < 4; j++) {
      xx -= num[k][j] * chk(hd0, tl0, hd1, tl1, j);
    }
    if (xx < 0) continue;
    mx0 = cc(hd0, tl0, n);
    mx1 = cc(hd1, tl1, m);
    mn0 = cd(hd0, tl0, n);
    mn1 = cd(hd1, tl1, m);
    if (xx == 0 && mn0 == 0 && mn1 == 0) {
      fg = 1;
      ans0 = 0;
      ans1 = 0;
      break;
    }
    for (int j = mn0; j < mx0 + 1; j++) {
      t0 = j * n0[k];
      t1 = (xx - t0) / n1[k];
      if ((xx - t0) % n1[k] == 0 && t1 <= mx1 && t1 >= mn1) {
        fg = 1;
        ans0 = j;
        ans1 = (xx - t0) / n1[k];
        break;
      }
    }
    if (fg) break;
  }
  if (!fg)
    puts("Happy new year!");
  else {
    output(hd0, tl0, n, ans0);
    puts("");
    output(hd1, tl1, m, ans1);
    puts("");
  }
  return 0;
}
