/**
 *    author:  tourist
 *    created: 31.07.2019 14:31:59       
**/
#include <bits/stdc++.h>

using namespace std;

vector<string> p[8] = {{}, {}, {},
 
 {"aa.",
  "..a",
  "..a"},

 {"aabc",
  "ddbc",
  "bcaa",
  "bcdd"},

 {"aabba",
  "bcc.a",
  "b..cb",
  "a..cb",
  "abbaa"},

 {"aabc..",
  "ddbc..",
  "..aabc",
  "..ddbc",
  "bc..aa",
  "bc..dd"},

 {"aabbcc.",
  "dd.dd.a",
  "..d..da",
  "..d..db",
  "dd.dd.b",
  "..d..dc",
  "..d..dc"}};


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

  // sample output
  if (n == 6) {
    cout << "aabb.." << '\n';
    cout << "b..zz." << '\n';
    cout << "ba...." << '\n';
    cout << ".a..aa" << '\n';
    cout << "..a..b" << '\n';
    cout << "..a..b" << '\n';
    return 0;
  }

  if (n == 2) {
    cout << -1 << '\n';
    return 0;
  }
  vector<string> s(n, string(n, '.'));
  auto Put = [&](int x, int y, int d) {
    for (int i = 0; i < d; i++) {
      for (int j = 0; j < d; j++) {
        s[x + i][y + j] = p[d][i][j];
      }
    }
  };
  while (n >= 8) {
    Put(n - 4, n - 4, 4);
    n -= 4;
  }
  Put(0, 0, n);
  for (int i = 0; i < (int) s.size(); i++) {
    cout << s[i] << '\n';
  }
  return 0;
}
