#include<bits/stdc++.h>
const int N=1005;
char ans4[15][15]={
"abcc",
"abdd",
"eefh",
"ggfh"
};
char ans5[15][15]={
"abbcc",
"ad..e",
"fd..e",
"f.ggh",
"iijjh"
};
char ans6[15][15]={
"ijk...",
"ijk...",
"ll.bcc",
"mm.bdd",
"..eefh",
"..ggfh"
};
char ans7[15][15]={
"klm....",
"klm....",
"oo.bbcc",
"pp.d..e",
"..fd..e",
"..f.ggh",
"..iijjh"
};
int n,i,j;
char ans[N][N];
inline void cov(int x,int y,int m){
	for(int i=0;i<m;++i){
		char*p;
		if(m==4)p=ans4[i];
		if(m==5)p=ans5[i];
		if(m==6)p=ans6[i];
		if(m==7)p=ans7[i];
		memcpy(ans[x+i]+y,p,m);
	}
}
int main(){
	scanf("%d",&n);
	if(n==2){puts("-1");return 0;}
	if(n==3){printf("aab\nd.b\ndcc\n");return 0;}
	for(i=1;i<=n;++i)memset(ans[i]+1,'.',n);
	int tn=n;
	for(;tn>7;tn-=4)cov(tn-3,tn-3,4);
	cov(1,1,tn);
	for(i=1;i<=n;++i)puts(ans[i]+1);
	return 0;
}