#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;
const int MAXK = 55, MAXN = 111;
int K, X, N, M;
int second[MAXK], F[MAXK];
long long tmemo[MAXK];
long long times(int k) {
  if (k < 2) return tmemo[k];
  times(k - 1);
  if (tmemo[k - 1] > X) return tmemo[k] = tmemo[k - 1];
  F[k] = F[k - 2];
  second[k] = second[k - 1];
  tmemo[k] = tmemo[k - 1] + tmemo[k - 2];
  if (second[k - 2] == 1 && F[k - 1] == 0) tmemo[k]++;
  return tmemo[k];
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> K >> X >> N >> M;
  K--;
  for (int i = 0; i <= (N + 1) / 2 - 1; i++) {
    for (int j = 0; j <= (M + 1) / 2 - 1; j++) {
      for (int back = 0; back <= 2; back++) {
        for (int front = 0; front <= 2; front++) {
          for (int b = 0; b <= 2; b++) {
            for (int f = 0; f <= 2; f++) {
              memset(tmemo, 0, sizeof(tmemo));
              memset(second, 0, sizeof(second));
              memset(F, 0, sizeof(F));
              tmemo[0] = i;
              tmemo[1] = j;
              second[0] = back;
              second[1] = b;
              F[0] = front;
              F[1] = f;
              if (N == 1 && back != front) continue;
              if (M == 1 && b != f) continue;
              bool usefa = true, useba = true;
              bool usefb = true, usebb = true;
              if (i > 0 && 2 * i + 1 == N) {
                if (second[0] == 1) {
                  F[0] = 1;
                  usefa = false;
                } else
                  useba = false;
              }
              if (j > 0 && 2 * j + 1 == M) {
                if (second[1] == 1) {
                  F[1] = 1;
                  usefb = false;
                } else
                  usebb = false;
              }
              if (back == 0 && front == 1 && N == 2) tmemo[0]++;
              if (b == 0 && f == 1 && M == 2) tmemo[1]++;
              if (times(K) == X) {
                if (usefa) cout << "CAG"[F[0]];
                int done = usefa;
                for (int x = 0; x < i; x++) {
                  cout << "AC";
                  done += 2;
                }
                while (done + 1 < N) {
                  cout << "G";
                  done++;
                }
                if (done < N) cout << "CAG"[second[0]];
                cout << '\n';
                if (usefb) cout << "CAG"[F[1]];
                done = usefb;
                for (int x = 0; x < j; x++) {
                  cout << "AC";
                  done += 2;
                }
                while (done + 1 < M) {
                  cout << "G";
                  done++;
                }
                if (done < M) cout << "CAG"[second[1]];
                cout << '\n';
                return 0;
              }
            }
          }
        }
      }
    }
  }
  cout << "Happy new year!\n";
  return 0;
}
