#include <bits/stdc++.h>
using namespace std;
double PI = acos(-1);
double EPS = 1e-7;
int INF = 1000000000;
int MOD = 1000000007;
int MAXINT = 2147483647;
long long INFLL = 1000000000000000000LL;
long long MAXLL = 9223372036854775807LL;
int mx[8] = {-1, 1, 0, 0, -1, -1, 1, 1};
int my[8] = {0, 0, -1, 1, -1, 1, -1, 1};
long long xx[55], xy[55], yx[55], yy[55];
long long x[55];
long long y[55];
char ansn[105];
char ansm[105];
char fix[4];
char lol[3] = {'A', 'B', 'C'};
int main() {
  int k, lim, n, m;
  scanf("%d%d%d%d", &k, &lim, &n, &m);
  x[1] = 1;
  y[2] = 1;
  for (int(a) = (3); (a) <= (k); (a)++) {
    xy[a] = xy[a - 1] + xy[a - 2];
    yx[a] = yx[a - 1] + yx[a - 2];
    yy[a] = yy[a - 1] + yy[a - 2];
    if (a == 3)
      xy[a]++;
    else if (a % 2 == 0)
      yx[a]++;
    else
      yy[a]++;
    x[a] = x[a - 1] + x[a - 2];
    y[a] = y[a - 1] + y[a - 2];
  }
  for (int(a) = (0); (a) <= (n - 1); (a)++) {
    ansn[a] = '*';
  }
  for (int(a) = (0); (a) <= (m - 1); (a)++) {
    ansm[a] = '*';
  }
  for (int(a) = (0); (a) <= (2); (a)++) {
    for (int(b) = (0); (b) <= (2); (b)++) {
      for (int(c) = (0); (c) <= (2); (c)++) {
        for (int(d) = (0); (d) <= (2); (d)++) {
          char fA = lol[a];
          char bA = lol[b];
          char fB = lol[c];
          char bB = lol[d];
          if (n == 1) fA = bA;
          if (m == 1) fB = bB;
          ansn[0] = fA;
          ansn[n - 1] = bA;
          ansm[0] = fB;
          ansm[m - 1] = bB;
          long long ans = 0;
          if (ansn[n - 1] == 'A' && ansm[0] == 'C') ans += xy[k];
          if (ansm[m - 1] == 'A' && ansn[0] == 'C') ans += yx[k];
          if (ansm[m - 1] == 'A' && ansm[0] == 'C') ans += yy[k];
          int maksx = 0;
          int maksy = 0;
          if (ansn[0] == 'A') {
            int cur = 1;
            while (cur < n) {
              if (ansn[cur] == '*' || ansn[cur] == 'C') maksx++;
              cur += 2;
            }
          } else {
            int cur = 2;
            while (cur < n) {
              if (ansn[cur] == '*' || ansn[cur] == 'C') maksx++;
              cur += 2;
            }
          }
          if (ansm[0] == 'A') {
            int cur = 1;
            while (cur < m) {
              if (ansm[cur] == '*' || ansm[cur] == 'C') maksy++;
              cur += 2;
            }
          } else {
            int cur = 2;
            while (cur < m) {
              if (ansm[cur] == '*' || ansm[cur] == 'C') maksy++;
              cur += 2;
            }
          }
          int underx = 0;
          int undery = 0;
          if (n == 2 && ansn[0] == 'A' && ansn[1] == 'C') underx++;
          if (m == 2 && ansm[0] == 'A' && ansm[1] == 'C') undery++;
          for (int(vx) = (underx); (vx) <= (maksx); (vx)++) {
            for (int(vy) = (undery); (vy) <= (maksy); (vy)++) {
              if ((long long)vx * x[k] + (long long)vy * y[k] + ans == lim) {
                int cox = vx;
                int coy = vy;
                if (fA == 'A') {
                  for (int i = 0; i <= 2 * cox - 1; i++) {
                    if (i % 2 == 0)
                      ansn[i] = 'A';
                    else
                      ansn[i] = 'C';
                  }
                  for (int i = 2 * cox; i <= n - 2; i++) {
                    ansn[i] = 'B';
                  }
                } else {
                  for (int i = 1; i <= 2 * cox; i++) {
                    if (i % 2 == 1)
                      ansn[i] = 'A';
                    else
                      ansn[i] = 'C';
                  }
                  for (int i = 2 * cox + 1; i <= n - 2; i++) {
                    ansn[i] = 'B';
                  }
                }
                if (fB == 'A') {
                  for (int i = 0; i <= 2 * coy - 1; i++) {
                    if (i % 2 == 0)
                      ansm[i] = 'A';
                    else
                      ansm[i] = 'C';
                  }
                  for (int i = 2 * coy; i <= m - 2; i++) {
                    ansm[i] = 'B';
                  }
                } else {
                  for (int i = 1; i <= 2 * coy; i++) {
                    if (i % 2 == 1)
                      ansm[i] = 'A';
                    else
                      ansm[i] = 'C';
                  }
                  for (int i = 2 * coy + 1; i <= m - 2; i++) {
                    ansm[i] = 'B';
                  }
                }
                for (int(i) = (0); (i) <= (n - 1); (i)++) {
                  printf("%c", ansn[i]);
                }
                printf("\n");
                for (int(i) = (0); (i) <= (m - 1); (i)++) {
                  printf("%c", ansm[i]);
                }
                printf("\n");
                return 0;
              }
            }
          }
        }
      }
    }
  }
  puts("Happy new year!");
}
