func_code_string: #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;   }   