#include <bits/stdc++.h>
using namespace std;
void E(){};
template <class A, class... B>
void E(A a, B... b) {
  cerr << ' ' << a;
  E(b...);
}
const int K = 64;
int64_t n1[K], n2[K], n11[K], n12[K], n21[K], n22[K];
const int N = 128;
char s1[N], s2[N];
bool good(char *s, int l) { return s[l] == 'A' && s[l + 1] == 'C'; }
int cnt(char *s, int l) {
  int ans = 0;
  for (int i = 1; i < l; ++i)
    if (good(s, i - 1)) ++ans;
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  int k, x, n, m;
  cin >> k >> x >> n >> m;
  n1[1] = 1;
  n1[2] = 0;
  n2[1] = 0;
  n2[2] = 1;
  n11[1] = n11[2] = n22[1] = n22[2] = 0;
  n12[1] = n12[2] = n21[1] = n21[2] = 0;
  for (int i = 3; i <= k; ++i) {
    n1[i] = n1[i - 2] + n1[i - 1];
    n2[i] = n2[i - 2] + n2[i - 1];
    n11[i] = n11[i - 2] + n11[i - 1];
    n12[i] = n12[i - 2] + n12[i - 1];
    n21[i] = n21[i - 2] + n21[i - 1];
    n22[i] = n22[i - 2] + n22[i - 1];
    if (i == 3)
      ++n12[i];
    else if ((i & 1) == 0)
      ++n21[i];
    else
      ++n22[i];
  }
  for (char b1 = 'A'; b1 <= 'C'; ++b1) {
    for (char e1 = 'A'; e1 <= 'C'; ++e1) {
      if (n == 1 && b1 != e1) continue;
      for (char b2 = 'A'; b2 <= 'C'; ++b2) {
        for (char e2 = 'A'; e2 <= 'C'; ++e2) {
          if (m == 1 && b2 != e2) continue;
          int val11 = (e1 == 'A') && (b1 == 'C');
          int val12 = (e1 == 'A') && (b2 == 'C');
          int val21 = (e2 == 'A') && (b1 == 'C');
          int val22 = (e2 == 'A') && (b2 == 'C');
          fill(s1, s1 + n, 'B');
          s1[0] = b1;
          s1[n - 1] = e1;
          int val1 = cnt(s1, n);
          for (int i1 = 1;; ++i1) {
            fill(s2, s2 + m, 'B');
            s2[0] = b2;
            s2[m - 1] = e2;
            int val2 = cnt(s2, m);
            for (int i2 = 1;; ++i2) {
              if (n1[k] * val1 + n2[k] * val2 + n11[k] * val11 +
                      n12[k] * val12 + n21[k] * val21 + n22[k] * val22 ==
                  x) {
                printf("%s\n%s\n", s1, s2);
                return 0;
              }
              if (i2 >= m - 1) break;
              s2[i2] = "AC"[(i2 + (b2 == 'A') + 1) % 2];
              if (good(s2, i2 - 1)) ++val2;
              if (good(s2, i2)) ++val2;
            }
            if (i1 >= n - 1) break;
            s1[i1] = "AC"[(i1 + (b1 == 'A') + 1) % 2];
            if (good(s1, i1 - 1)) ++val1;
            if (good(s1, i1)) ++val1;
          }
        }
      }
    }
  }
  printf("Happy new year!");
  return 0;
}
