#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;
const int inf = 1000000007;
const long long linf = 1LL << 62;
const unsigned long long ulinf = 1ULL << 63;
const double eps = 0.000001;
const double pi = 3.14159265358979323846;
template <class T>
T abs(T a) {
  return a >= 0 ? a : -a;
}
template <class T>
T sqr(T a) {
  return a * a;
}
template <class T>
T gcd(T a, T b) {
  return b ? gcd(b, a % b) : a;
}
template <class T>
T mod(T a, T b) {
  return (a % b + b) % b;
}
template <class T>
T lowbit(T x) {
  return x & -x;
}
long long powmod(long long a, long long b, long long c) {
  if (b == 0LL) return 1LL;
  long long ret = powmod(a, b >> 1, c);
  ret = ret * ret % c;
  if (b & 1LL) ret = ret * a % c;
  return ret;
}
long long modinv(long long a, long long b) { return powmod(a, b - 2LL, b); }
template <class T>
void maxe(T &a, T b) {
  if (a < b) a = b;
}
template <class T>
void mine(T &a, T b) {
  if (a > b) a = b;
}
int iszero(double a) { return abs(a) <= eps; }
template <class T>
void geti(T &a) {
  a = 0;
  T b = 1;
  char c = getchar();
  if (c == '-')
    b = -1;
  else
    a = c - 48;
  while ((c = getchar()) != ' ' && c != '\n') a = a * 10 + c - 48;
  a *= b;
}
void fileio_in_out() {
  freopen(".in", "r", stdin);
  freopen(".out", "w", stdout);
}
void fileio_txt() {
  freopen("input.txt", "r", stdin);
  freopen("output.txt", "w", stdout);
}
const int N = 222222;
const int M = 1111111;
const int K = 22;
int test;
int n, m, k, ans;
long long ti;
long long a[N], b[N], ab[N], ba[N], bb[N];
void prac(int k) {
  for (int i = 0; i < k; i++) printf("AC");
}
void prb(int k) {
  for (int i = 0; i < k; i++) printf("B");
}
int getans() {
  a[1] = 1;
  b[2] = 1;
  for (int i = 3; i <= k; i++) {
    a[i] = a[i - 2] + a[i - 1];
    b[i] = b[i - 2] + b[i - 1];
    ab[i] = ab[i - 2] + ab[i - 1];
    if (i == 3) ab[i]++;
    ba[i] = ba[i - 2] + ba[i - 1];
    if (i % 2 == 0) ba[i]++;
    bb[i] = bb[i - 2] + bb[i - 1];
    if (i % 2 == 1 && i >= 5) bb[i]++;
  }
  for (int i = 0; i * 2 <= n; i++)
    for (int j = 0; j * 2 <= m; j++)
      if (i * a[k] + j * b[k] == ti) {
        prac(i);
        prb(n - i * 2);
        puts("");
        prac(j);
        prb(m - j * 2);
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n - 1; i++)
    for (int j = 0; j * 2 <= m - 1; j++)
      if (i * a[k] + j * b[k] + ab[k] == ti) {
        prac(i);
        prb(n - 1 - i * 2);
        printf("A");
        puts("");
        printf("C");
        prac(j);
        prb(m - 1 - j * 2);
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n - 1; i++)
    for (int j = 0; j * 2 <= m - 1; j++)
      if (i * a[k] + j * b[k] + ba[k] == ti) {
        printf("C");
        prac(i);
        prb(n - 1 - i * 2);
        puts("");
        prac(j);
        prb(m - 1 - j * 2);
        printf("A");
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n; i++)
    for (int j = 0; j * 2 <= m - 2; j++)
      if (i * a[k] + j * b[k] + bb[k] == ti) {
        prac(i);
        prb(n - i * 2);
        puts("");
        printf("C");
        prac(j);
        prb(m - 2 - j * 2);
        printf("A");
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n - 1; i++)
    for (int j = 0; j * 2 <= m - 2; j++)
      if (i * a[k] + j * b[k] + ab[k] + bb[k] == ti) {
        prac(i);
        prb(n - 1 - i * 2);
        printf("A");
        puts("");
        printf("C");
        prac(j);
        prb(m - 2 - j * 2);
        printf("A");
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n - 1; i++)
    for (int j = 0; j * 2 <= m - 2; j++)
      if (i * a[k] + j * b[k] + ba[k] + bb[k] == ti) {
        printf("C");
        prac(i);
        prb(n - 1 - i * 2);
        puts("");
        printf("C");
        prac(j);
        prb(m - 2 - j * 2);
        printf("A");
        puts("");
        return 1;
      }
  for (int i = 0; i * 2 <= n - 2; i++)
    for (int j = 0; j * 2 <= m - 2; j++)
      if (i * a[k] + j * b[k] + ab[k] + ba[k] + bb[k] == ti) {
        printf("C");
        prac(i);
        prb(n - 2 - i * 2);
        printf("A");
        puts("");
        printf("C");
        prac(j);
        prb(m - 2 - j * 2);
        printf("A");
        puts("");
        return 1;
      }
  return 0;
}
int main() {
  scanf("%d%I64d%d%d", &k, &ti, &n, &m);
  ans = getans();
  if (!ans) puts("Happy new year!");
  return 0;
}
