#include <iostream>
#include <fstream>
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cassert>
#include <cmath>
#include <stack>
#include <queue>
#include <deque>



using namespace std;


typedef long long ll;
typedef double ld;
/*
string s, s0, s2;

int solve(int n)
{
    s0 = "";
    s = "";
    s2 = "";
    for (int i = 0; i < n; ++i)
        s0 += (char)('A' + rand() % 2);
    s0[0] = 'A';

    s = s0;
    //cout << s << "\n";

    s2 = s;

    for (int i = 1; i < s.size(); ++i)
    {
        if (s[i] == s[i - 1])
            s2[i] = 'B';
        else
            s2[i] = 'A';
    }
    s = s2;

    int cnt = 1;
    while (s != s0)
    {
        ++cnt;
        //cout << s << "\n";
        s2 = s;

        for (int i = 1; i < s.size(); ++i)
        {
            if (s[i] == s[i - 1])
                s2[i] = 'B';
            else
                s2[i] = 'A';
        }
        s = s2;
    }
    return cnt;

}*/


int main()
{
    //cin >> s0;
    int n;
    cin >> n;


    if (n % 2 == 1)
    {
        cout << "NO";
        return 0;
    }

    if (n == 2)
    {
        cout << "AA\n";
        cout << "11";
        return 0;
    }

    int k = 1;
    while ((1 << k) < n)
        ++k;
    int x = (1 << (k - 2)) + 2;
    for (int i = 0; i < x; ++i)
        printf("A");
    printf("\n");

    int l = (n - (1 << (k - 1))) / 2;

    for (int i = 0; i < l; ++i)
        printf("1212");
    for (int i = 0; i < n - 4 * l; ++i)
        printf("2");



    /*for (int i = 2; i <= n; ++i)
    {
        cout << i << " " << solve(i) << "\n";
    }*/

    return 0;
}
