#include <bits/stdc++.h>
using namespace std;
struct node {
  int l, r;
  int va;
} f[100];
int k, x, n, m;
bool gao(int a1, int a2, int a3, int a4, int vax, int vay) {
  f[1].l = a1;
  f[1].r = a2;
  f[1].va = vax;
  f[2].l = a3;
  f[2].r = a4;
  f[2].va = vay;
  int i;
  for (i = 3; i <= k; i++) {
    f[i].l = f[i - 2].l;
    f[i].r = f[i - 1].r;
    f[i].va = f[i - 2].va + f[i - 1].va;
    if (f[i - 2].r == 0 && f[i - 1].l == 1) f[i].va++;
    if (f[i].va > x) return false;
  }
  if (f[k].va == x) {
    int now = 0;
    if (a1 == 1) {
      now++;
      printf("C");
    } else if (a1 == 2) {
      now++;
      printf("Z");
    }
    for (i = 0; i < vax; i++) {
      now += 2;
      printf("AC");
    }
    for (i = now; i < n - 1; i++) {
      now++;
      if (a1 == 0)
        printf("A");
      else
        printf("C");
    }
    if (now < n) {
      if (a2 == 1)
        printf("C");
      else if (a2 == 0)
        printf("A");
      else
        printf("Z");
    }
    puts("");
    now = 0;
    if (a3 == 1) {
      now++;
      printf("C");
    } else if (a3 == 2) {
      now++;
      printf("Z");
    }
    for (i = 0; i < vay; i++) {
      now += 2;
      printf("AC");
    }
    for (i = now; i < m - 1; i++) {
      now++;
      if (a3 == 0)
        printf("A");
      else
        printf("C");
    }
    if (now < m) {
      if (a4 == 1)
        printf("C");
      else if (a4 == 0)
        printf("A");
      else
        printf("Z");
    }
    puts("");
    return true;
  } else
    return false;
}
int main() {
  int i, j, a1, a2, a3, a4;
  scanf("%d%d%d%d", &k, &x, &n, &m);
  int flag = 0;
  for (a1 = 0; a1 < 3; a1++) {
    if (flag) break;
    for (a2 = 0; a2 < 3; a2++) {
      if (flag) break;
      for (a3 = 0; a3 < 3; a3++) {
        if (flag) break;
        for (a4 = 0; a4 < 3; a4++) {
          if (flag) break;
          for (i = 0; i <= n / 2; i++) {
            if (flag) break;
            if (a1 == 2 && i * 2 + 1 > n) continue;
            if (a2 == 2 && i * 2 + 1 > n) continue;
            if (a1 == 2 && a2 == 2 && i != 0 && i * 2 + 2 > n) continue;
            if (a1 == 2 && a2 == 0 && i * 2 + 2 > n) continue;
            if (a1 == 1 && a2 == 2 && i * 2 + 2 > n) continue;
            if (a1 != a2 && n == 1) continue;
            if (a1 == 0 && a2 == 1 && i == 0) continue;
            if (a2 == 0 && i * 2 + 1 > n) continue;
            if (a1 == 1 && i * 2 + 1 > n) continue;
            if (a1 == 1 && a2 == 0 && i * 2 + 2 > n) continue;
            for (j = 0; j <= m / 2; j++) {
              if (flag) break;
              if (a3 == 2 && j * 2 + 1 > m) continue;
              if (a4 == 2 && j * 2 + 1 > m) continue;
              if (a3 == 2 && a4 == 2 && j != 0 && j * 2 + 2 > m) continue;
              if (a3 == 2 && a4 == 0 && j * 2 + 2 > m) continue;
              if (a3 == 1 && a4 == 2 && j * 2 + 2 > m) continue;
              if (a3 != a4 && m == 1) continue;
              if (a4 == 0 && j * 2 + 1 > m) continue;
              if (a3 == 0 && a4 == 1 && j == 0) continue;
              if (a3 == 1 && j * 2 + 1 > m) continue;
              if (a3 == 1 && a4 == 0 && j * 2 + 2 > m) continue;
              if (gao(a1, a2, a3, a4, i, j)) flag = 1;
            }
          }
        }
      }
    }
  }
  if (flag == 0) puts("Happy new year!");
}
