#include <iostream>
#include <string>
#include <string.h>
using namespace std;

string dm3[3] = {"a..",
				 "a..",
				 ".bb"};

string dm4[4] = {"aaef",
				 "bbef",
				 "cdgg",
				 "cdhh"};

string dm5[5] = {"aabbc",
				 "de..c",
				 "de..j",
				 "f.iij",
				 "fgghh"};

string dm6[6] = {"abbe..",
				 "a.ce..",
				 "ddc.ff",
				 "g..ikk",
				 "g..i.l",
				 ".hhjjl"};

string dm7[7] = {".abbcc.",
				 "da...ee",
				 "d.f...g",
				 "h.f...g",
				 "h..ii.j",
				 "kk...lj",
				 ".mmnnl."};

char dm[1111][1111];
int n, num_of_4, left_over;

void make_board(void)
{
	int sty = 0, stx = 0, i, j;

	while (num_of_4--)
	{
		for (i = 0; i < 4; i++)
			for (j = 0; j < 4; j++)
				dm[sty + i][stx + j] = dm4[i][j];

		sty += 4, stx += 4;
	}

	if (left_over == 4)
		for (i = 0; i < 4; i++)
			for (j = 0; j < 4; j++)
				dm[sty + i][stx + j] = dm4[i][j];
	else if (left_over == 5)
		for (i = 0; i < 5; i++)
			for (j = 0; j < 5; j++)
				dm[sty + i][stx + j] = dm5[i][j];
	else if (left_over == 6)
		for (i = 0; i < 6; i++)
			for (j = 0; j < 6; j++)
				dm[sty + i][stx + j] = dm6[i][j];
	else if (left_over == 7)
		for (i = 0; i < 7; i++)
			for (j = 0; j < 7; j++)
				dm[sty + i][stx + j] = dm7[i][j];
}

int main(void)
{
	cin.tie(NULL);
	cout.tie(NULL);
    ios::sync_with_stdio(false);

    int i, j;

    cin >> n;

    if (n == 2)
	{
		cout << -1;
		return 0;
	}
    else if (n == 3)
	{
		for (i = 0; i < 3; i++)
			cout << dm3[i] << "\n";
		return 0;
	}

	memset(dm, '.', sizeof(dm));

	num_of_4 = n / 4 - 1;
	left_over = n - num_of_4 * 4;

	make_board();

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