#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1E5 + 5;
int bit[10], k, first, m, n;
long long Cnt(int lop, long long ac, bool as, bool ae, long long bc, bool bs,
              bool be) {
  if (lop == k) return bc;
  return Cnt(lop + 1, bc, bs, be, ac + bc + (ae * bs), as, be);
}
string Make(int c, bool s, bool e, int len) {
  string S;
  int i = 0;
  S.resize(len);
  if (s) S[i++] = 'C';
  if (e) S[--len] = 'A';
  while (c > 0) S[i++] = 'A', S[i++] = 'C', --c;
  while (i < len) S[i++] = 'X';
  return S;
}
void Try(int ac, bool as, bool ae, int bc, bool bs, bool be) {
  if (ac * 2 + as + ae > m) return;
  if (bc * 2 + bs + be > n) return;
  if (Cnt(2, ac, as, ae, bc, bs, be) == first) {
    cout << Make(ac, as, ae, m) << endl;
    cout << Make(bc, bs, be, n) << endl;
    exit(0);
  }
}
int main() {
  cin >> k >> first >> m >> n;
  for (int i = 0; i < 5; ++i) bit[i] = 1 << i;
  for (int i = 0; i <= m >> 1; ++i)
    for (int j = 0; j <= n >> 1; ++j)
      for (int mask = 0; mask < bit[4]; ++mask)
        Try(i, mask & bit[0], mask & bit[1], j, mask & bit[2], mask & bit[3]);
  puts("Happy new year!");
}
