#include #define fi first #define se second #define rep(i,s,n) for (int i = (s); i < (n); ++i) #define rrep(i,g,n) for (int i = (n)-1; i >= (g); --i) #define all(a) a.begin(),a.end() #define rall(a) a.rbegin(),a.rend() #define len(x) (int)(x).size() #define dup(x,y) (((x)+(y)-1)/(y)) #define pb push_back #define eb emplace_back #define Field(T) vector> using namespace std; using ll = long long; using ull = unsigned long long; template using pq = priority_queue,greater>; using P = pair; templatebool chmax(T&a,T b){if(abool chmin(T&a,T b){if(b> n; if (n <= 4) { if (n == 1) { cout << -1 << endl; } else if (n == 2) { cout << -1 << endl; } else if (n == 3) { cout << "AAAAAA" << endl; cout << "BBBBAA" << endl; cout << "BBBBBA" << endl; cout << "BBBBBA" << endl; cout << "ABBBBA" << endl; cout << "AAAAAA" << endl; } else if (n == 4) { cout << "AAAAAAAA" << endl; cout << "ABBBBBBA" << endl; cout << "AABBBBBA" << endl; cout << "ABBBBBBA" << endl; cout << "AABBBBBA" << endl; cout << "ABBBBBBA" << endl; cout << "ABABABBA" << endl; cout << "AAAAAAAA" << endl; } return 0; } vector s(2*n, string(2*n, 'A')); rep(i,1,2*n-2) rep(j,1,2*n-2) s[i][j] = 'B'; s[0][0] = s[0][1] = s[1][0] = 'B'; // rep(i,0,2*n) cout << s[i] << endl; int x = (2*n-3)*(2*n-3)+3; // int y = (2*n-4)*(2*n-3)/2; // cout << x-y << " " << 2*n*n << " " << y << endl; rep(i,0,2*n-4) { rep(j,0,2*n-4-i) { if (x > 2*n*n) { s[j+1][2*n-i-3] = 'A'; --x; } } } rep(i,0,2*n) cout << s[i] << endl; return 0; }