#include <bits/stdc++.h>

using namespace std;

const int maxn = 1010;
int a[maxn][maxn], n;

template <bool flag>
void add(int x, int y, int c)
{
    if (flag)
        a[x][y] = a[x][y + 1] = c;
    else
        a[x][y] = a[x + 1][y] = c;
}

void fill(int x, int y, int t)
{
    int timer = 0;
    if (t == 3)
    {
        add<0>(x, y + 2, timer++);
        add<1>(x + 2, y, timer++);
    }
    if (t == 4)
    {
        add<0>(x, y, timer++);
        add<0>(x, y + 1, timer++);
        add<1>(x, y + 2, timer++);
        add<1>(x + 1, y + 2, timer++);
        add<1>(x + 2, y, timer++);
        add<1>(x + 3, y, timer++);
        add<0>(x + 2, y + 2, timer++);
        add<0>(x + 2, y + 3, timer++);
    }
    if (t == 5)
    {
        add<1>(x, y, timer++);
        add<1>(x, y + 2, timer++);
        add<0>(x, y + 4, timer++);
        add<0>(x + 1, y, timer++);
        add<1>(x + 1, y + 1, timer++);
        add<0>(x + 2, y + 3, timer++);
        add<0>(x + 2, y + 4, timer++);
        add<0>(x + 3, y, timer++);
        add<1>(x + 4, y + 1, timer++);
        add<1>(x + 4, y + 3, timer++);
    }
    if (t == 6)
    {
        add<0>(x, y, timer++);
        add<1>(x, y + 1, timer++);
        add<1>(x, y + 3, timer++);
        add<0>(x + 1, y + 2, timer++);
        add<0>(x + 1, y + 5, timer++);
        add<1>(x + 2, y, timer++);
        add<1>(x + 3, y, timer++);
        add<0>(x + 3, y + 3, timer++);
        add<1>(x + 3, y + 4, timer++);
        add<0>(x + 4, y + 2, timer++);
        add<0>(x + 4, y + 5, timer++);
        add<1>(x + 5, y + 3, timer++);
    }
    if (t == 7)
    {
        add<1>(x, y, timer++);
        add<1>(x, y + 2, timer++);
        add<1>(x, y + 4, timer++);
        add<0>(x + 1, y, timer++);
        add<0>(x + 1, y + 1, timer++);
        add<0>(x + 1, y + 6, timer++);
        add<0>(x + 3, y, timer++);
        add<0>(x + 3, y + 1, timer++);
        add<0>(x + 3, y + 6, timer++);
        add<1>(x + 5, y + 2, timer++);
        add<1>(x + 5, y + 4, timer++);
        add<1>(x + 6, y + 2, timer++);
        add<1>(x + 6, y + 4, timer++);
        add<0>(x + 5, y + 6, timer++);
    }
}

int main()
{
    ios::sync_with_stdio(false);
    cin >> n;

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

    if (n < 3)
        return cout << -1, 0;
    if (n < 8)
    {
        fill(0, 0, n);
        for (int i = 0; i < n; i++, cout << '\n')
            for (int j = 0; j < n; j++)
                cout << (char)(a[i][j] + 'a');
        return 0;
    }

    int d = n % 4;
    if (d == 0)
    {
        for (int i = 0; i < n; i += 4)
            fill(i, i, 4);
    }
    if (d == 1)
    {
        fill(0, 0, 5);
        for (int i = 5; i < n; i += 4)
            fill(i, i, 4);
    }
    if (d == 2)
    {
        fill(0, 0, 6);
        for (int i = 6; i < n; i += 4)
            fill(i, i, 4);
    }
    if (d == 3)
    {
        fill(0, 0, 5);
        fill(5, 5, 6);
        for (int i = 11; i < n; i += 4)
            fill(i, i, 4);
    }

    for (int i = 0; i < n; i++, cout << '\n')
        for (int j = 0; j < n; j++)
            cout << (char)(a[i][j] + 'a');

    return 0;
}


Measured memory_bytes: 5120