#include <bits/stdc++.h>
using namespace std;
const double PI = acos(-1.0);
const double eps = 1e-8;
char ans[1024];
int K, X, N, M;
char st[64], ed[64];
long long num[64];
void printAns(char from, char to, int all, int len) {
  int pos = 1;
  if (from == 'A') pos = 0;
  for (int i = 0; i < len; i++) ans[i] = 'B';
  for (int i = 0; i < all; i++)
    ans[pos + 2 * i] = 'A', ans[pos + 2 * i + 1] = 'C';
  ans[0] = from;
  ans[len - 1] = to;
  ans[len] = '\0';
  printf("%s\n", ans);
}
int main() {
  scanf("%d%d%d%d", &K, &X, &N, &M);
  for (char s1 = 'A'; s1 <= 'C'; s1++) {
    for (char e1 = 'A'; e1 <= 'C'; e1++) {
      if (N == 1 && s1 != e1) continue;
      for (char s2 = 'A'; s2 <= 'C'; s2++) {
        for (char e2 = 'A'; e2 <= 'C'; e2++) {
          if (M == 1 && s2 != e2) continue;
          long long tn = N - (s1 != 'A') - (e1 != 'C');
          long long tm = M - (s2 != 'A') - (e2 != 'C');
          long long inN = tn / 2;
          long long inM = tm / 2;
          st[1] = s1, ed[1] = e1;
          st[2] = s2, ed[2] = e2;
          for (long long i = 0; i <= inN; i++) {
            for (long long k = 0; k <= inM; k++) {
              if (N == 2 && s1 == 'A' && e1 == 'C' && i == 0) continue;
              if (M == 2 && s2 == 'A' && e2 == 'C' && k == 0) continue;
              num[1] = i;
              num[2] = k;
              for (int g = 3; g <= K; g++) {
                st[g] = st[g - 2], ed[g] = ed[g - 1];
                num[g] = num[g - 1] + num[g - 2] +
                         (ed[g - 2] == 'A' && st[g - 1] == 'C');
              }
              if (num[K] == X) {
                printAns(s1, e1, i, N);
                printAns(s2, e2, k, M);
                return 0;
              }
            }
          }
        }
      }
    }
  }
  printf("Happy new year!\n");
  return 0;
}
