#include <iostream>
#include <cstdio>
#include <set>
#include <cstdlib>
#include <cstdlib>
using namespace std;

int n;
/*
int mask;

void print(int start, int len) {
    for(int i = 0; i < len; i++)
        printf((((start>>i)&1)?"A":"B"));
    printf("\n");
}

void printMask(int start, int len) {
    for(int i = 0; i < len; i++)
        printf((((start>>i)&1)?"2":"1"));
    printf("\n");
}


int exec(int start, int len, int op, int num) {
    set<int> u;
    u.insert(start);

    //cout << start;
    //print(start, len);
    for(int i = 0; i < num; i++) {
        if((op>>i)&1) {
            start = start ^ ((start>>1)&((1<<(len-1))-1));
        } else {
            start ^= 1;
            //for(int j=1; j < n)
        }
        if(i!=num-1 && u.find(start)!=u.end()) {
            return -1;
        } else {
            u.insert(start);
        }
        //print(start, len);
    }
    return start;
    //cout << start;
    //printf("\n");
}*/

void checkK(int k) {
    if(n < k) return;

    if(k%2 == 1) {
        if(n == (k-1)*2) {
            for(int i = 0; i < k; i++) printf("A");
            printf("\n");
            for(int i = 0; i < n; i++) printf("2");
            printf("\n");
            exit(0);
        } else if (n>2*k-2) {
            return;
        } else if(n%2 == k%2) {
            for(int i = 0; i < k; i++) printf("A");
            printf("\n");

            int up = 1 + n - k;
            int left = k-1;
            bool lastup = false;
            while(up != 0 || left!= 0) {
                if(up != 0 && !lastup) {
                    up--;
                    printf("1");
                    lastup = true;
                } else {
                    printf("2");
                    left--;
                    lastup = false;
                }
            }
            printf("\n");
            exit(0);
        }
    } else {
        if (n>2*k-2) {
            return;
        } else if(n%2 == k%2) {
            for(int i = 0; i < k; i++) printf("A");
            printf("\n");

            int up = n - k;
            bool lastup = false;
            while(up != 0 || k!= 0) {
                if(up != 0 && !lastup) {
                    up--;
                    printf("1");
                    lastup = true;
                } else {
                    printf("2");
                    k--;
                    lastup = false;
                }
            }
            printf("\n");
            exit(0);
        }
    }

    //return (k%2==n%2) && ((k%2==0)&&(k <= n && 2*k - 1 >= n) || (k%2==1)&&(k <= n && 2*k - 2 >= n));

}

int main() {
    //exec(31, 4, 43, 6);

    scanf("%d", &n);
    for(int k = 3; ;k++) checkK(k);
    /*
    if(n == 2) {
        printf("AA\n11\n");
    } else if(n ==3) {
        printf("AAA\n221\n");
    } else if(n==4) {
        printf("AAA\n2222\n");
    } else if(n==5) {
        printf("AAA\n1212\n");
    } else if(n==6) {
        printf("AAAA\n212122\n");
    } */
/*
    int k;
    k = (n/2) - 3;
    while(!checkK(k)) k++;

    for(int i = 0; i < k; i++) printf("A");
    printf("\n");

    int up;
    if(k%2==0) up = 0;
    else up = 1;
    up = n - k + up;
    bool lastup = false;
    while(up != 0 && k!= 0) {
        if(up != 0 && !lastup) {
            up--;
            printf("1");
            lastup = true;
        } else {
            printf("2");
            k--;
            lastup = false;
        }
    }
    printf("\n");



    /*

    for(mask = (1 << (n+1))-1; mask >= 0; mask--) {
        for(int k = 3; k < 5; k++) {
            int start = (1<<(k+1)) - 1;
            if(exec(start, k, mask, n) == start) {
                print(start, k);
                printMask(mask, n);
                return 0;
            }
        }

    }
*/
    return 0;
}
