#include using namespace std; #define rep(i,a,b) for(ll i=a;i=b;i--) #define ll long long #define ull unsigned ll #define ld long double #define bl __int128_t #define fi first #define se second #define vel vector #define vvel vector #define pll pair #define vepll vector #define vvepll vector #define ves vector #define vem vector #define vvem vector #define pmm pair #define cleout(i) cout<using PQ=priority_queue,greater>; // 上 右 下 左 vector di={-1, 0, 1, 0}; vector dj={ 0, 1, 0,-1}; vector dx={ 0, 1, 0,-1}; vector dy={ 1, 0,-1, 0}; vector ddx={ 1, 1, 1, 0, -1, -1, -1, 0 }; vector ddy={ 1, 0, -1, -1, -1, 0, 1, 1 }; ll inf=1000000000000000000;//1e18 // LLONG_MAX mt19937_64 rng((ull)chrono::steady_clock::now().time_since_epoch().count()); void _solve(){ ll N; cin>>N; if(N>2&&(2*N-3)*(2*N-3)+3>=2*N*N){ vel cnt(2*N); ll ok=(2*N-3)*(2*N-3)+3-2*N*N; rrep(i,2*N-2,1){ ll m=max(0ll,min(2*N-4,ok)); cnt[i]=m; ok-=m; } vvel ans(2*N,vel(2*N)); rep(i,0,2){ rep(j,0,2)ans[i][j]=1; } rep(j,1,2*N-2){ rep(i,1,2*N-2-cnt[j])ans[i][j]=1; } rep(i,0,2*N){ rep(j,0,2*N){ cout<<(char)('A'+ans[i][j]); } cout<<"\n"; } }else cout<<"-1\n"; } int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); ll _; bool multitest=0; if(multitest)cin>>_; else _=1; rep(__,0,_){ _solve(); } }