#include <bits/stdc++.h>
using namespace std;
int k, x, m, n;
struct T {
  long long v;
  int x, y;
};
T dp[52];
void Print(int i, int p, int q, int j, int g, int h) {
  string a = "", b = "";
  for (int t = 1; t <= i; t++) a += "AC";
  while ((int)a.length() < n - 2) a += "X";
  if (p == 1) a = "C" + a;
  if (q == 1) a = a + "A";
  if (p == 0) {
    if (a.length() < n) a = "X" + a;
  }
  if (q == 0) {
    if (a.length() < n) a = a + "X";
  }
  for (int t = 1; t <= j; t++) b += "AC";
  while ((int)b.length() < m - 2) b += "X";
  if (g == 1) b = "C" + b;
  if (h == 1) b = b + "A";
  if (g == 0) {
    if (b.length() < m) b = "X" + b;
  }
  if (h == 0) {
    if (b.length() < m) b = b + "X";
  }
  cout << a << '\n' << b;
}
void Enter() {
  cin >> k >> x >> n >> m;
  for (int i = 0; i <= n / 2; i++)
    for (int j = 0; j <= m / 2; j++)
      for (int p = 0; p <= 1; p++)
        for (int q = 0; q <= 1; q++) {
          if (i * 2 + p + q > n) break;
          for (int g = 0; g <= 1; g++)
            for (int h = 0; h <= 1; h++) {
              if (j * 2 + g + h > m) break;
              dp[1] = {i, p, q};
              dp[2] = {j, g, h};
              for (int t = 3; t <= k; t++) {
                dp[t].v = dp[t - 2].v + dp[t - 1].v;
                if (dp[t - 2].y == 1 && dp[t - 1].x == 1) dp[t].v++;
                dp[t].x = dp[t - 2].x;
                dp[t].y = dp[t - 1].y;
              }
              if (dp[k].v == x) {
                Print(i, p, q, j, g, h);
                return;
              }
            }
        }
  cout << "Happy new year!";
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  Enter();
}
