#include<bits/stdc++.h>
using namespace std;
char c[1001][1001];
string p1[4]={"aacd","bbcd","hgee","hgff"};
string p2[6]={"aab.ee","d.bf..","dccf..",".eeaab","f..d.b","f..dcc"};
string p3[7]={"a.bb.cc","aw..xx.",".w.pp.d","h.q...d","h.q..y.",".zz..ye","gg.ff.e"};
string p4[3]={".aa","b..","b.."};
int main(){
	ios::sync_with_stdio(false);int n;
	cin >> n;
	if(n==2) return cout << "-1\n",0;
	if(n==5) return cout << "abbxx\na.dyy\nccdzz\npqr..\npqr..\n",0;
	if(n==3) return cout << ".aa\nb..\nb..\n",0;
	if(n==9){
		for(int i=0; i<9 ;i++){
			for(int j=0; j<9 ;j++){
				if(i/3==j/3) cout << p4[i%3][j%3];
				else cout << ".";
			}
			cout << '\n';
		}
		return 0;
	}
	for(int i=1; i<=n ;i++){
		for(int j=1; j<=n ;j++){
			c[i][j]='.';
		}
	}
	if(n%4==0){
		for(int i=1; i<=n/4 ;i++){
			for(int j=0; j<4 ;j++){
				for(int k=0; k<4 ;k++){
					c[i*4-3+j][i*4-3+k]=p1[j][k];
				}
			}
		}
	}
	else if(n%2==0){
		for(int i=0; i<6 ;i++){
			for(int j=0; j<6 ;j++){
				c[i+1][j+1]=p2[i][j];
			}
		}
		for(int i=1; i<=n/4-1 ;i++){
			for(int j=0; j<4 ;j++){
				for(int k=0; k<4 ;k++){
					c[i*4+3+j][i*4+3+k]=p1[j][k];
				}
			}
		}
	}
	else if(n%4==3){
		for(int i=0; i<7 ;i++){
			for(int j=0; j<7 ;j++){
				c[i+1][j+1]=p3[i][j];
			}
		}
		for(int i=1; i<=n/4-1 ;i++){
			for(int j=0; j<4 ;j++){
				for(int k=0; k<4 ;k++){
					c[i*4+4+j][i*4+4+k]=p1[j][k];
				}
			}
		}
	}
	else{
		for(int i=0; i<7 ;i++){
			for(int j=0; j<7 ;j++){
				c[i+1][j+1]=p3[i][j];
			}
		}
		for(int i=0; i<6 ;i++){
			for(int j=0; j<6 ;j++){
				c[i+8][j+8]=p2[i][j];
			}
		}
		for(int i=1; i<=n/4-3 ;i++){
			for(int j=0; j<4 ;j++){
				for(int k=0; k<4 ;k++){
					c[i*4+10+j][i*4+10+k]=p1[j][k];
				}
			}
		}
	}
	for(int i=1; i<=n ;i++){
		for(int j=1; j<=n ;j++){
			cout << c[i][j];
		}
		cout << '\n';
	}
}