#include #include using namespace std; using namespace atcoder; using ll = long long; #define rep(i, n) for (ll i = 0; i < (ll)(n); i++) using mint = modint998244353; #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() template bool chmin(T& a, T b){if(a > b){a = b; return true;} return false;} template bool chmax(T& a, T b){if(a < b){a = b; return true;} return false;} const ll inf=1000000000000000000; const ll mod=998244353; const double pi=acos(-1); ll root(ll x){ ll k=(ll)sqrt(x); while(k*k>x) k--; while((k+1)*(k+1)<=x) k++; return k; } //logN void press(vector &a){ map ord; for(auto x:a) ord[x]=1; ll j=0; for(auto &p:ord){ p.second=j; j++; } for(auto &x:a) x=ord[x]; return; } mint kaijou(ll n){ mint a=1; rep(i,n){ a*=(i+1); } return a; } vector> matmul(vector> &a,vector> &b){ vector> ret(a.size(),vector(b[0].size())); rep(i,a.size()) rep(j,b[0].size()) rep(k,b.size()) ret[i][j]+=a[i][k]*b[k][j]; return ret; } vector> matpow(vector> a,ll n){ ll siz=a.size(); vector> ret(siz,vector(siz)); while(n>0){ if(n&1) ret=matmul(a,ret); rep(i,siz) ret[i][i]=1; a=matmul(a,a); n=n/2; } return ret; } int main () { ll n; cin>>n; if(n<=2){ cout<<-1< a(8); a[0]="ABBBBAAA"; a[1]="ABBBBBBA"; a[2]="ABBBBBBA"; a[3]="ABBBBBBA"; a[4]="ABBBBBBA"; a[5]="ABBBBAAA"; a[6]="AAAAAAAA"; a[7]="AAAAAAAA"; rep(i,8) cout<> ans(n*2,vector(n*2)); ans[0][0]='B'; ans[0][1]='B'; ans[1][0]='B'; ans[1][1]='B'; rep(i,n*2-4) ans[2+i][1]='B'; rep(i,n*2-4) ans[1][2+i]='B'; ll cnt=n*4-4; rep(i,n*2-4) rep(j,n*2-4){ if(cnt