#include <bits/stdc++.h>
using namespace std;
int main() {
  long long k, x, n, m;
  long long i, j, kk;
  cin >> k >> x >> n >> m;
  long long nn = n / 2;
  long long mm = m / 2;
  for (i = 0; i <= nn; i++) {
    for (j = 0; j <= mm; j++) {
      long long a[55] = {0};
      a[1] = i;
      a[2] = j;
      for (kk = 3; kk <= k; kk++) a[kk] = a[kk - 1] + a[kk - 2];
      if (a[k] == x) {
        string s, ss;
        for (long long i1 = 0; i1 < i; i1++) s += "AC";
        while (s.size() < n) s += 'X';
        for (long long j1 = 0; j1 < j; j1++) ss += "AC";
        while (ss.size() < m) ss += 'X';
        if (s.size() == n && ss.size() == m) {
          cout << s << endl << ss << endl;
          return 0;
        }
      }
    }
  }
  for (i = 0; i <= nn; i++) {
    for (j = 0; j <= mm; j++) {
      long long a[55] = {0};
      a[1] = i;
      a[2] = j;
      for (kk = 3; kk <= k; kk++) {
        if (kk == 3)
          a[kk] = a[kk - 1] + a[kk - 2] + 1;
        else
          a[kk] = a[kk - 1] + a[kk - 2];
      }
      if (a[k] == x) {
        string s, ss;
        for (long long i1 = 0; i1 < i; i1++) s += "AC";
        while (s.size() < (n - 1)) s += 'X';
        s += "A";
        ss += "C";
        for (long long j1 = 0; j1 < j; j1++) ss += "AC";
        while (ss.size() < m) ss += 'X';
        if (s.size() == n && ss.size() == m) {
          cout << s << endl << ss << endl;
          return 0;
        }
      }
    }
  }
  for (i = 0; i <= nn; i++) {
    for (j = 0; j <= mm; j++) {
      long long a[55] = {0};
      a[1] = i;
      a[2] = j;
      for (kk = 3; kk <= k; kk++) {
        if (kk % 2 == 0)
          a[kk] = a[kk - 1] + a[kk - 2] + 1;
        else
          a[kk] = a[kk - 1] + a[kk - 2];
      }
      if (a[k] == x) {
        string s, ss;
        s += "C";
        for (long long i1 = 0; i1 < i; i1++) s += "AC";
        while (s.size() < n) s += 'X';
        for (long long j1 = 0; j1 < j; j1++) ss += "AC";
        while (ss.size() < (m - 1)) ss += 'X';
        ss += "A";
        if (s.size() == n && ss.size() == m) {
          cout << s << endl << ss << endl;
          return 0;
        }
      }
    }
  }
  for (i = 0; i <= nn; i++) {
    for (j = 0; j <= mm; j++) {
      long long a[55] = {0};
      a[1] = i;
      a[2] = j;
      for (kk = 3; kk <= k; kk++) {
        if (kk % 2 == 1 && kk > 3)
          a[kk] = a[kk - 1] + a[kk - 2] + 1;
        else
          a[kk] = a[kk - 1] + a[kk - 2];
      }
      if (a[k] == x) {
        string s, ss;
        for (long long i1 = 0; i1 < i; i1++) s += "AC";
        while (s.size() < n) s += 'X';
        ss += "C";
        for (long long j1 = 0; j1 < j; j1++) ss += "AC";
        while (ss.size() < (m - 1)) ss += 'X';
        ss += "A";
        if (s.size() == n && ss.size() == m) {
          cout << s << endl << ss << endl;
          return 0;
        }
      }
    }
  }
  for (i = 0; i <= nn; i++) {
    for (j = 0; j <= mm; j++) {
      long long a[55] = {0};
      a[1] = i;
      a[2] = j;
      for (kk = 3; kk <= k; kk++) {
        a[kk] = a[kk - 1] + a[kk - 2] + 1;
      }
      if (a[k] == x) {
        string s, ss;
        s += "C";
        for (long long i1 = 0; i1 < i; i1++) s += "AC";
        while (s.size() < (n - 1)) s += 'X';
        s += "A";
        ss += "C";
        for (long long j1 = 0; j1 < j; j1++) ss += "AC";
        while (ss.size() < (m - 1)) ss += 'X';
        ss += "A";
        if (s.size() == n && ss.size() == m) {
          cout << s << endl << ss << endl;
          return 0;
        }
      }
    }
  }
  cout << "Happy new year!" << endl;
  return 0;
}
