#include <bits/stdc++.h>
using namespace std;
int nextint() {
  int a;
  scanf("%d", &a);
  return a;
}
char nextchar() {
  char a[8];
  scanf("%s", a);
  return a[0];
}
double nextdouble() {
  double a;
  scanf("%lf", &a);
  return a;
}
const double EPS = 1e-6;
long long get(long long b1, long long m1, long long e1, long long b2,
              long long m2, long long e2, int k) {
  long long b3, m3, e3;
  for (int i = 3; i <= k; i++) {
    b3 = b1;
    e3 = e2;
    m3 = m1 + m2;
    if (e1 && b2) m3++;
    b1 = b2;
    m1 = m2;
    e1 = e2;
    b2 = b3;
    m2 = m3;
    e2 = e3;
  }
  return m2;
}
string build(int b, int m, int e, int sz) {
  string begin = "";
  if (b) begin += "C";
  string end = "";
  if (e) end = "A";
  string mid = "";
  for (int i = 0; i < m; i++) mid += "AC";
  while (begin.size() + mid.size() + end.size() < sz) mid += "Z";
  return begin + mid + end;
}
int main() {
  int k = nextint();
  long long x = nextint();
  int n = nextint();
  int m = nextint();
  for (int b1 = 0; b1 < 2; b1++) {
    for (int e1 = 0; e1 < 2; e1++) {
      for (int m1 = 0; b1 + 2 * m1 + e1 <= n; m1++) {
        for (int b2 = 0; b2 < 2; b2++) {
          for (int e2 = 0; e2 < 2; e2++) {
            for (int m2 = 0; b2 + 2 * m2 + e2 <= m; m2++) {
              long long res = get(b1, m1, e1, b2, m2, e2, k);
              if (res == x) {
                cout << build(b1, m1, e1, n) << endl;
                cout << build(b2, m2, e2, m) << endl;
                return 0;
              }
            }
          }
        }
      }
    }
  }
  puts("Happy new year!");
  return 0;
}
