#include <bits/stdc++.h>
using namespace std;
int solve(pair<int, int> p1, pair<int, int> p2, int K, int x) {
  if (K == 0 && p2.first == x) {
    return 1;
  }
  if (K == 0) {
    return 0;
  }
  if (p2.first > x) {
    return 0;
  }
  int val1 = p1.first;
  int type1 = p1.second;
  int val2 = p2.first;
  int type2 = p2.second;
  int ans = val1 + val2;
  if (type1 & 1 && type2 & 2) {
    ans++;
  }
  int newType = 0;
  if (type1 & 2) newType += 2;
  if (type2 & 1) newType += 1;
  pair<int, int> p(ans, newType);
  return solve(p2, p, K - 1, x);
}
int main() {
  int K, x, n, m;
  cin >> K >> x >> n >> m;
  vector<pair<int, int> > first;
  vector<pair<int, int> > second;
  for (int i = 0; i < n; i++) {
    if (2 * i <= n) {
      first.push_back(pair<int, int>(i, 0));
    }
    if (1 + 2 * i <= n) {
      first.push_back(pair<int, int>(i, 2));
    }
    if (2 * i + 1 <= n) {
      first.push_back(pair<int, int>(i, 1));
    }
    if (1 + 2 * i + 1 <= n) {
      first.push_back(pair<int, int>(i, 3));
    }
  }
  for (int i = 0; i < m; i++) {
    if (2 * i <= m) {
      second.push_back(pair<int, int>(i, 0));
    }
    if (1 + 2 * i <= m) {
      second.push_back(pair<int, int>(i, 2));
    }
    if (2 * i + 1 <= m) {
      second.push_back(pair<int, int>(i, 1));
    }
    if (1 + 2 * i + 1 <= m) {
      second.push_back(pair<int, int>(i, 3));
    }
  }
  string s1 = "";
  string s2 = "";
  for (int i = 0; i < n; i++) {
    s1 += "X";
  }
  for (int i = 0; i < m; i++) {
    s2 += "X";
  }
  for (int i = 0; i < first.size(); i++) {
    int value1 = first[i].first;
    int type1 = first[i].second;
  }
  for (int i = 0; i < second.size(); i++) {
    int value1 = second[i].first;
    int type1 = second[i].second;
  }
  for (int i = 0; i < first.size(); i++) {
    for (int j = 0; j < second.size(); j++) {
      int value1 = first[i].first;
      int type1 = first[i].second;
      int value2 = second[j].first;
      int type2 = second[j].second;
      if (solve(first[i], second[j], K - 2, x)) {
        int start1 = 0;
        if (type1 & 2) {
          start1++;
          s1[0] = 'C';
        }
        if (type1 & 1) {
          s1[n - 1] = 'A';
        }
        int start2 = 0;
        if (type2 & 2) {
          start2++;
          s2[0] = 'C';
        }
        if (type2 & 1) {
          s2[m - 1] = 'A';
        }
        for (int i = 0; i < value1; i++) {
          s1[2 * i + start1] = 'A';
          s1[2 * i + start1 + 1] = 'C';
        }
        for (int i = 0; i < value2; i++) {
          s2[2 * i + start2] = 'A';
          s2[2 * i + start2 + 1] = 'C';
        }
        cout << s1 << endl;
        cout << s2 << endl;
        return 0;
      }
    }
  }
  cout << "Happy new year!" << endl;
}
