#include <bits/stdc++.h>
using namespace std;
int n, m, k, x;
long long s1s2[60], s2s1[60], s2s2[60], s1[60], s2[60];
bool se[60][2];
int main() {
  scanf("%d %d %d %d", &k, &x, &n, &m);
  se[1][0] = se[1][1] = true;
  se[2][0] = se[2][1] = false;
  s1[1] = 1;
  s2[2] = 1;
  for (int i = 3; i < 51; ++i) {
    se[i][0] = se[i - 2][0];
    se[i][1] = se[i - 1][1];
    s1[i] = s1[i - 2] + s1[i - 1];
    s2[i] = s2[i - 2] + s2[i - 1];
    s1s2[i] =
        s1s2[i - 2] + s1s2[i - 1] + ((se[i - 2][1] && !se[i - 1][0]) ? 1 : 0);
    s2s1[i] =
        s2s1[i - 2] + s2s1[i - 1] + ((!se[i - 2][1] && se[i - 1][0]) ? 1 : 0);
    s2s2[i] =
        s2s2[i - 2] + s2s2[i - 1] + ((!se[i - 2][1] && !se[i - 1][0]) ? 1 : 0);
  }
  char str1[110], str2[110];
  memset(str1, 'D', sizeof(str1));
  memset(str2, 'D', sizeof(str2));
  str1[n] = str2[m] = '\0';
  for (int i1 = 0; i1 <= n / 2; ++i1) {
    for (int i2 = 0; i2 <= m / 2; ++i2) {
      for (int i3 = 0; i3 < 2; ++i3) {
        for (int i4 = 0; i4 < 2; ++i4) {
          for (int i5 = 0; i5 < 2; ++i5) {
            long long tx = i1 * s1[k] + i2 * s2[k] + i3 * s1s2[k] +
                           i4 * s2s1[k] + i5 * s2s2[k];
            if (tx != x) continue;
            int ti = i3 + i4 + i5;
            if (ti == 2) continue;
            if (ti == 0) {
              for (int j = 0; j < i1; ++j) {
                str1[2 * j] = 'A';
                str1[2 * j + 1] = 'C';
              }
              for (int j = 0; j < i2; ++j) {
                str2[2 * j] = 'A';
                str2[2 * j + 1] = 'C';
              }
            } else if (ti == 3) {
              if (i1 == n / 2 || i2 == m / 2) continue;
              for (int j = 0; j < i1; ++j) {
                str1[2 * j + 1] = 'A';
                str1[2 * j + 2] = 'C';
              }
              for (int j = 0; j < i2; ++j) {
                str2[2 * j + 1] = 'A';
                str2[2 * j + 2] = 'C';
              }
              str1[0] = str2[0] = 'C';
              str1[n - 1] = str2[m - 1] = 'A';
            } else if (i5 == 1) {
              if (i2 == m / 2) continue;
              for (int j = 0; j < i2; ++j) {
                str2[2 * j + 1] = 'A';
                str2[2 * j + 2] = 'C';
              }
              str2[0] = 'C';
              str2[m - 1] = 'A';
              for (int j = 0; j < i1; ++j) {
                str1[2 * j] = 'A';
                str1[2 * j + 1] = 'C';
              }
            } else if (i4 == 1) {
              if (i1 * 2 == n || i2 * 2 == m) continue;
              for (int j = 0; j < i2; ++j) {
                str2[2 * j] = 'A';
                str2[2 * j + 1] = 'C';
              }
              str2[m - 1] = 'A';
              for (int j = 0; j < i1; ++j) {
                str1[2 * j + 1] = 'A';
                str1[2 * j + 2] = 'C';
              }
              str1[0] = 'C';
            } else {
              if (i1 * 2 == n || i2 * 2 == m) continue;
              for (int j = 0; j < i1; ++j) {
                str1[2 * j] = 'A';
                str1[2 * j + 1] = 'C';
              }
              str1[n - 1] = 'A';
              for (int j = 0; j < i2; ++j) {
                str2[2 * j + 1] = 'A';
                str2[2 * j + 2] = 'C';
              }
              str2[0] = 'C';
            }
            printf("%s\n%s\n", str1, str2);
            return 0;
          }
        }
      }
    }
  }
  printf("Happy new year!\n");
}
