#include <iostream>
#include <fstream>
#include <cstring>
#include<map>
#include<queue>

#define f cin
#define g cout

using namespace std;

int n,rr,i;

string sir;

map<string,int>ok;

inline void rez(int pas, string op,string s){
    if(s.size() == 1)
        return;
    if(rr)
        return;

    if(s == sir && pas == n)
    {
        g << s << '\n' << op << '\n';

        rr = 1;

        return;
    }
    if(ok.find(s) != ok.end())
        return;
    ok[s] = 1;

    s[s.size() - 1] = 'A' + 'B' - s[s.size() - 1];
    rez(pas + 1, op + '1', s);
    if(rr) return;

    s[s.size() - 1] = 'A' + 'B' - s[s.size() - 1];
    string s2 = "A";

    for(i = 1; i < s.size(); ++i)
        s2 += (s[i] == s[i - 1])?'B':'A';
    rez(pas + 1, op + '2', s2);
    if(rr) return;

}

inline void back(int k){
    if(k > n)
        return;

    sir += "A";
    rez(0, "",sir);
    if(rr) return;
    back(k + 1);



    sir[sir.size() - 1] = 'B';
    rez(0,"",sir);
    if(rr) return;
    back(k + 1);
}



int main()
{
    f >> n;
    sir = "A";
    back(2);

    if(!rr)
        g << "NO";

    return 0;
}
