#include<cstdio>
#include<vector>
using namespace std;

int N, n, n_stiva, ap[1<<24], stiva[1<<24], pos[1<<24], cum, deja[100009];
vector < int > cic;

int next1 (int v, int n)
{
    return v^1;
}

int next2 (int v, int n)
{
    return v^(v>>1);
}

void U (int st, int dr)
{
    if (dr-st+1 == N && !cum)
    {
        for (int i= st; i<=dr; i++)
            cic.push_back (stiva[i]);
        cum = n;
    }
}

void dfs (int nod)
{
    ap[nod] = 1;
    stiva[++n_stiva] = nod;
    pos[nod] = n_stiva;

    if (ap[next1(nod, n)] == 0) dfs (next1(nod, n));
    else
    if (pos[next1(nod, n)]) U (pos[next1(nod, n)], n_stiva);
    
    if (ap[next2(nod, n)] == 0) dfs (next2(nod, n));
    else
    if (pos[next2(nod, n)]) U (pos[next2(nod, n)], n_stiva);
    
    pos[nod] = 0;
    n_stiva --;
}

void Print (int v, int cum)
{
    for (int i=cum-1; i>=0; i--)
        if (v&(1<<i)) printf ("A");
        else printf ("B");
}

void prec()
{
    deja[1] = 1;
    deja[2] = 2;
    deja[3] = 3;
    deja[8] = 4;
    deja[7] = 5;
    deja[16] = 6;
    deja[15] = 9;
    deja[32] = 10;
    deja[31] = 17;
    deja[64] = 18;
    deja[63] = 33;
    deja[128] = 34;
    deja[127] = 65;
    deja[256] = 66;
    deja[255] = 129;
    deja[512] = 130;
    deja[511] = 257;
    deja[1024] = 258;
    deja[1023] = 513;
    deja[2048] = 514;
}

int main()
{
//freopen ("input", "r", stdin);
//freopen ("output", "w", stdout);
prec();
scanf ("%d", &N);
if (deja[N])
{
    printf ("A");
    for (int i=2; i<=deja[N]; i++)
        printf ("B");
    printf ("\n");
    for (int i=1; i<=N; i++)
        printf ("%d", (i-1)%2 + 1);
    printf ("\n");
    return 0;
}
for (n=1; n<=18; n++)
{
    for (int i=0;i<(1<<n); i++)
        if (i & (1<<(n-1)))
            dfs (i);
    for (int i=0;i<(1<<n); i++)
        ap[i] = 0;
}
if (cum)
{
    for (int i=cum-1; i>=0; i--)
        if (cic[0]&(1<<i)) printf ("A");
        else printf ("B");
    cic.push_back (cic[0]);
    printf ("\n");
    for (int i=0; i<cic.size()-1; i++)
        if (next1(cic[i], cum) == cic[i+1]) printf ("1");
        else printf ("2");
    printf ("\n");
//    for (int i=0; i<cic.size(); i++)
  //      Print (cic[i], cum), printf ("\n");
}
else printf ("NO\n");
return 0;
}
