#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    cout<<(1<<n)-1<<endl;
    for(int i=1;i<(1<<n);i++)
    {
        for(int j=0;j<(1<<n);j++)
            putchar('A'+(__builtin_popcount(i&j)&1));
        puts("");
    }
    return 0;
}
#include <bits/stdc++.h>
using namespace std;

vector<string> ret[8];

int main(){
	ret[0].push_back("AB");
	for(int i=1;i<8;i++){
		for(string s: ret[i-1]){
			string t="";
			for(int j=0;j<s.size();j++){
				t+=s[j]; t+=s[j];
			}
			ret[i].push_back(t);
		}
		for(int j=0;j<(1<<i);j++){
			string t="";
			if(j==0){
				for(int k=0;k<(1<<i);k++){
					t+="AB";
				}
			}
			else {
				for(int k=0;k<(1<<i);k++){
					if(ret[i-1][j-1][k]=='A'){
						t+="AB";
					}
					else t+="BA";
				}
			}
			ret[i].push_back(t);
		}
	}
	int n;
	scanf("%d",&n); n--;
	printf("%d\n",(int)ret[n].size());
	for(string s: ret[n]){
		cout<<s<<"\n";
	}
}

