#include <bits/stdc++.h>
using namespace std;
const long double PI = acos(-1.0);
const long double EPS = 1e-9;
const int INF = 1e+9;
struct aaa {
  aaa() {}
  aaa(int l_, int r_, int cnt_) : l(l_), r(r_), cnt(cnt_) {}
  int l, r;
  long long cnt;
  aaa operator+(const aaa& rhs) {
    aaa res;
    res.cnt = cnt + rhs.cnt;
    if (r == 0 && rhs.l == 1) res.cnt++;
    res.l = l, res.r = rhs.r;
    return res;
  }
};
int k, x, n, m;
string s1, s2;
char ch[3] = {'A', 'C', 'X'};
bool isValid(int l1, int r1, int c1, int len) {
  if (len == 1) {
    if (l1 != r1 || c1 > 0)
      return false;
    else if (l1 == r1 || c1 == 0)
      return true;
  }
  if (len == 2) {
    if (l1 == 0 && r1 == 1 && c1 == 1)
      return true;
    else if (!(l1 == 0 && r1 == 1) && c1 == 0)
      return true;
    else
      return false;
  }
  if (len % 2) {
    if (c1 > len / 2)
      return false;
    else if (c1 == len / 2) {
      if (l1 == 0)
        return true;
      else if (r1 == 1)
        return true;
      else
        return false;
    } else
      return true;
  } else {
    if (c1 > len / 2)
      return false;
    else if (c1 == len / 2) {
      if (l1 == 0 && r1 == 1)
        return true;
      else
        return false;
    } else
      return true;
  }
}
string generate(aaa s, int len) {
  string res;
  if (s.l != 0) {
    res += ch[s.l];
  }
  for (int i = 0; i < (s.cnt); ++i) res += "AC";
  if ((int)(res).size() == 0) res += ch[s.l];
  int tmp = (int)(res).size();
  for (int i = 0; i < (len - 1 - tmp); ++i) {
    res += "X";
  }
  if ((int)(res).size() < len) res += ch[s.r];
  return res;
}
int main() {
  cin >> k >> x >> n >> m;
  for (int l1 = 0; l1 < (3); ++l1) {
    for (int r1 = 0; r1 < (3); ++r1) {
      for (int c1 = 0; c1 < (n / 2 + 1); ++c1) {
        for (int l2 = 0; l2 < (3); ++l2) {
          for (int r2 = 0; r2 < (3); ++r2) {
            for (int c2 = 0; c2 < (m / 2 + 1); ++c2) {
              if (l1 == 0 && r1 == 1 && l2 == 1 && r2 == 0 && c1 == 1 &&
                  c2 == 0)
                int g = 1;
              if (isValid(l1, r1, c1, n) && isValid(l2, r2, c2, m)) {
                aaa s1(l1, r1, c1);
                aaa s2(l2, r2, c2);
                aaa t1, t2;
                t1 = s1, t2 = s2;
                for (int step = 0; step < (k - 2); ++step) {
                  aaa tmp = s2;
                  s2 = s1 + s2;
                  s1 = tmp;
                }
                if (s2.cnt == x) {
                  cout << generate(t1, n) << endl;
                  cout << generate(t2, m);
                  return 0;
                }
              }
            }
          }
        }
      }
    }
  }
  cout << "Happy new year!";
  return 0;
}
