#include <bits/stdc++.h>

using namespace std;

const int Nmax = 1e5 + 2;

string word;

void R1( string &s )
{
    if ( s[ s.size() - 1 ] == 'A' )
        s[ s.size() - 1 ] = 'B';
    else
        s[ s.size() - 1 ] = 'A';
}

void R2( string &s )
{
    string w = "A";

    for ( int i = 1; i < s.size(); ++i )
        if ( s[i - 1] == s[i] )
            w += "B";
        else
            w += "A";

    s = w;
}

int cod( string &s )
{
    int c = 0;

    for ( int i = 0; i < s.size(); ++i )
        c = c * 2 + s[i] - 'A';

    return c;
}

int givePeriod( string s )
{
    map <int, int> M;

    string initial = s;

    M[ cod( s ) ] = 1;

    for ( int i = 1; i < 100; ++i )
    {
        if ( s[ s.size() - 1 ] == 'B' )
            R2( s );
        else
            R1( s );

        if ( M[ cod( s ) ] )
        {
            if ( s == initial )
                return i;
            else
                return 0;
        }

        M[ cod( s ) ] = 1;
    }

    return 1e9;
}

vector <string> v( 100 );



int main()
{
    int n;

    v[2] = "AA";
    v[3] =  "ABA";
    v[5] =  "ABBBA";
    v[6] =  "AAAA";
    v[7] =  "ABAAA";
    v[9] =  "ABBBBBBBA";
    v[10] =  "ABABABA";
    v[11] =  "ABAAAAAAA";
    v[12] =  "AAAAAA";
    v[13] =  "AAABAAAAA";
    v[14] =  "ABBBAAA";
    v[15] =  "ABABABAAA";
    v[20] = "ABABABABABA";
    v[22] = "ABAAAAAAAAA";
    v[24] = "AAAAAAAAAA";
    v[26] = "ABBAABAAAAA";
    v[28] = "ABBBABABAAA";
    v[30] = "ABABABABABAAA";

    cin >> n;

        if ( v[n].size() )
        {
            cout << v[n] << "\n";

            string s = v[n];

            map<int,int> M;

            M[ cod( s ) ] = 1;

            for ( int j = 1; j < 100; ++j )
            {
                if ( s[ s.size() - 1 ] == 'B' )
                {
                    R2( s );
                    cout << "2";
                }
                else
                {
                    R1( s );
                    cout << "1";
                }

                if ( M[ cod( s ) ] )
                {
                    return 0;
                }

                M[ cod( s ) ] = 1;
            }
        }

    cout << "NO\n";

    return 0;
}
