#include <bits/stdc++.h>
#define ll long long
#define db long double
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define all(a) a.begin(), a.end()

using namespace std;

char ans[1000][1000];

string ex4 = "abccabddeeghffgh";
string ex5 = "aabbecd..ecd..if.hhifggjj";
string ex6 = "a..bbca..d.c.eedffgghi..j.hi..jkk.ll";
string ex7 = "aabbcc.dd...ef..g..ef..ghh.i..jll.i..j..mnkk...mn";

int main(){
#ifdef LOCAL
	//freopen("K_input.txt", "r", stdin);
	//freopen("K_output.txt", "w", stdout);
#endif
	ios_base::sync_with_stdio(0);
	cin.tie(0);

	int n;
	cin >> n;

	if (n == 2){
		cout << -1;
		exit(0);
	}
	if (n == 3) {
		cout << "aab\nc.b\ncdd";
		exit(0);
	}

	for (int i=0;i<n;++i) for (int j=0;j<n;++j) ans[i][j] = '.';

	int index = 0;
	while (n - index > 7) {
		int u = 0;
		for (int i = index; i < index + 4; ++i) for (int j=index; j < index + 4; ++j) {
			ans[i][j] = ex4[u++];
		}
		index += 4;
	}

	int u = 0;

	if (n - index == 4) {
		for (int i = index; i < index + 4; ++i) for (int j=index; j < index + 4; ++j) {
			ans[i][j] = ex4[u++];
		}
	}

	if (n - index == 5) {
		for (int i = index; i < index + 5; ++i) for (int j=index; j < index + 5; ++j) {
			ans[i][j] = ex5[u++];
		}
	}	

	if (n - index == 6) {
		for (int i = index; i < index + 6; ++i) for (int j=index; j < index + 6; ++j) {
			ans[i][j] = ex6[u++];
		}
	}	

	if (n - index == 7) {
		for (int i = index; i < index + 7; ++i) for (int j=index; j < index + 7; ++j) {
			ans[i][j] = ex7[u++];
		}
	}		

	for (int i=0;i<n; ++i){
		for (int j=0;j<n;++j) cout << ans[i][j];
		cout << "\n";
	}


}
