#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000000 + 7;
const double eps = 1e-9;
const int inf = 0x3f3f3f3f;
const long long infl = 10000000000000000;
const int maxn = 1000 + 10;
const int maxm = 400000 + 10;
int in(int &ret) {
  char c;
  int sgn;
  if (c = getchar(), c == EOF) return -1;
  while (c != '-' && (c < '0' || c > '9')) c = getchar();
  sgn = (c == '-') ? -1 : 1;
  ret = (c == '-') ? 0 : (c - '0');
  while (c = getchar(), c >= '0' && c <= '9') ret = ret * 10 + (c - '0');
  ret *= sgn;
  return 1;
}
int k, x, n, m;
long long cnt(int k, long long ac, long long bc, bool as, bool ae, bool bs,
              bool be) {
  if (k == 2) return bc;
  return cnt(k - 1, bc, ac + bc + (ae * bs), bs, be, as, be);
}
void out(int n, int c, bool s, bool e) {
  string str;
  str.resize(n);
  int i = 0;
  if (s) str[i++] = 'C';
  if (e) str[--n] = 'A';
  while (c--) str[i++] = 'A', str[i++] = 'C';
  while (i < n) str[i++] = 'X';
  cout << str << endl;
}
bool check(long long ac, long long bc, bool as, bool ae, bool bs, bool be) {
  if (2 * ac + as + ae > n) return 0;
  if (2 * bc + bs + be > m) return 0;
  if (cnt(k, ac, bc, as, ae, bs, be) == x) {
    out(n, ac, as, ae);
    out(m, bc, bs, be);
    return 1;
  }
  return 0;
}
int main() {
  scanf("%d%d", &k, &x);
  scanf("%d%d", &n, &m);
  for (int i = 0; i <= 2 * n; ++i) {
    for (int j = 0; j <= 2 * m; ++j) {
      for (int k = 0; k < 16; ++k) {
        if (check(i, j, k & 1, 1 & (k >> 1), 1 & (k >> 2), 1 & (k >> 3)))
          return 0;
      }
    }
  }
  puts("Happy new year!");
  return 0;
}
