#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
#include <vector>

using namespace std;

vector<vector<string>> answers = {{""},
                                  {""},
                                  {""},
                                  {
                                      "aa.",
                                      "..b",
                                      "..b",
                                  },
                                  {
                                      "abcc",
                                      "abdd",
                                      "eefg",
                                      "hhfg",
                                  },
                                  {
                                      "abc..",
                                      "abc..",
                                      "deeff",
                                      "d.ghh",
                                      "iigjj",
                                  },
                                  {
                                      "abc...",
                                      "abc...",
                                      "d.eeff",
                                      "dghh..",
                                      ".g.ijj",
                                      "kk.ill",
                                  },
                                  {
                                      "abc....",
                                      "abc....",
                                      "def....",
                                      "def....",
                                      "g..hhii",
                                      "g..jjkk",
                                      ".llmmnn",
                                  }

};

// vector<string> solve(int n) {
//     const int d = 3;
//     auto ans = vector<string>(n, string(n, '.'));
//     int doms = n * 2;
//     vector<int> rc(n), cc(n);
//     vector<int> arr(doms, -1);
//     int i = 0;
//     while (1) {
//         if (i == doms) {
//             return ans;
//         }
//         int &a = arr[i];
//         if (a >= 0) {
//             int o = (a & 1);
//             int c0 = (a >> 1) % n;
//             int r0 = (a >> 1) / n;
//             int c1 = c0 + o;
//             int r1 = r0 + (o ^ 1);
//             if (r0 < n && c0 < n && r1 < n && c1 < n) {
//                 if (ans[r0][c0] == 'a' + i && ans[r1][c1] == 'a' + i) {
//                     ans[r0][c0] = '.';
//                     ans[r1][c1] = '.';
//                     --rc[r0];
//                     --cc[c0];
//                     if (c1 == c0) {
//                         --rc[r1];
//                     } else {
//                         --cc[c1];
//                     }
//                 }
//             }
//         }

//         ++a;

//         int o = (a & 1);
//         int c0 = (a >> 1) % n;
//         int r0 = (a >> 1) / n;
//         int c1 = c0 + o;
//         int r1 = r0 + (o ^ 1);

//         if (r0 < n && c0 < n && r1 < n && c1 < n) {
//             if (ans[r0][c0] == '.' && ans[r1][c1] == '.') {
//                 if (rc[r0] < d && rc[r1] < d && cc[c0] < d && cc[c1] < d) {
//                     ans[r0][c0] = 'a' + i;
//                     ans[r1][c1] = 'a' + i;
//                     ++rc[r0];
//                     ++cc[c0];
//                     if (c0 == c1) {
//                         ++rc[r1];
//                     } else {
//                         ++cc[c1];
//                     }
//                     ++i;
//                 }
//             }
//         } else if (r0 == n) {
//             a = -1;
//             --i;
//         }
//     }
// }

vector<string>& solve2(int n) {
    return answers[n];
}

void pr(const vector<string> &board, int pad, int n) {
    int k = board.size();
    auto lpad = string(pad, '.');
    auto rpad = string(n - k - pad, '.');
    for (auto &row : board) {
        cout << lpad << row << rpad << '\n';
    }
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    int n;
    cin >> n;
    if (n == 2) {
        cout << -1 << endl;
    } else if (n == 3) {
        cout << "aa.\n..b\n..b" << endl;
    } else {
        int fours = n / 4;
        int aux = n % 4;
        int pad = 0;
        if (aux) {
            --fours;
            aux += 4;
            pr(solve2(aux), pad, n);
            pad += aux;
        }
        if (fours) {
            auto s4 = solve2(4);
            while (fours--) {
                pr(s4, pad, n);
                pad += 4;
            }
        }
    }
    return 0;
}


Measured memory_bytes: 1280