#include using namespace std; vector build(int n) { int size = 2 * n; if (n == 3) { return { "AAAAAA", "ABBBAA", "ABBBBA", "ABBBBA", "ABBBBA", "ABBBAA" }; } if (n == 4) { return { "AAAAAAAA", "AAAAAAAA", "ABBBBAAA", "ABBBBBBA", "ABBBBBBA", "ABBBBBBA", "ABBBBBBA", "ABBBBAAA" }; } int squareSize = 2 * n - 3; vector grid(size, string(size, 'A')); grid[0][0] = 'B'; grid[0][1] = 'B'; grid[1][0] = 'B'; for (int row = 1; row <= squareSize; row++) { for (int col = 1; col <= squareSize; col++) { grid[row][col] = 'B'; } } long long removeCount = 1LL * squareSize * squareSize + 3 - 2LL * n * n; for (int row = squareSize; removeCount > 0; row--) { int take = static_cast(min(squareSize - 1, removeCount)); for (int col = squareSize - take + 1; col <= squareSize; col++) { grid[row][col] = 'A'; } removeCount -= take; } return grid; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; if (n <= 2) { cout << -1 << '\n'; return 0; } vector grid = build(n); for (const string& row : grid) { cout << row << '\n'; } return 0; }