#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define mid ((l+r)>>1)
const int M=1e3+20,P=1e9+7;
struct Task{
    int n;
    char s[M][M];
    void init(){
        scanf("%d",&n);
        for(int i=1;i<=n;++i)
            for(int j=1;j<=n;++j)
                s[i][j]='.';
    }
    void run(){
        init();
        if (n==2){
            cout<<-1<<endl;
            return ;
        }
        if (n%3==0){
            for(int i=1;i<=n/3;++i){
                int ca=3*(i-1);
                s[ca+1][ca+1]=s[ca+1][ca+2]='a';
                s[ca+1][ca+3]=s[ca+2][ca+3]='b';
                s[ca+2][ca+1]=s[ca+3][ca+1]='c';
                s[ca+3][ca+2]=s[ca+3][ca+3]='d';
            }
            for(int i=1;i<=n;++i){
                for(int j=1;j<=n;++j)
                    putchar(s[i][j]);
                putchar('\n');
            }
            return;
        }
        if (n%6==0||n%6==4||n%6==5){
            for(int i=1;i<=n/6;++i){
                int ca=6*(i-1);
                s[ca+1][ca+1]=s[ca+2][ca+1]='a';
                s[ca+1][ca+4]=s[ca+2][ca+4]='b';
                s[ca+1][ca+5]=s[ca+1][ca+6]='c';
                s[ca+2][ca+5]=s[ca+2][ca+6]='d';
                s[ca+3][ca+2]=s[ca+4][ca+2]='e';
                s[ca+3][ca+3]=s[ca+3][ca+4]='f';
                s[ca+3][ca+5]=s[ca+4][ca+5]='g';
                s[ca+4][ca+3]=s[ca+4][ca+4]='h';
                s[ca+5][ca+1]=s[ca+5][ca+2]='i';
                s[ca+6][ca+1]=s[ca+6][ca+2]='j';
                s[ca+5][ca+3]=s[ca+6][ca+3]='k';
                s[ca+5][ca+6]=s[ca+6][ca+6]='l';
            }
            int ca=6*(n/6);
            if (n%6==4){
                s[ca+1][ca+1]=s[ca+1][ca+2]='a';
                s[ca+2][ca+1]=s[ca+2][ca+2]='b';
                s[ca+1][ca+3]=s[ca+2][ca+3]='c';
                s[ca+1][ca+4]=s[ca+2][ca+4]='d';
                s[ca+3][ca+1]=s[ca+4][ca+1]='e';
                s[ca+3][ca+2]=s[ca+4][ca+2]='f';
                s[ca+3][ca+3]=s[ca+3][ca+4]='g';
                s[ca+4][ca+3]=s[ca+4][ca+4]='h';
            }
            if (n%6==5){
                s[ca+1][ca+1]=s[ca+2][ca+1]='a';
                s[ca+3][ca+1]=s[ca+4][ca+1]='b';
                s[ca+5][ca+1]=s[ca+5][ca+2]='c';
                s[ca+5][ca+3]=s[ca+5][ca+4]='d';
                s[ca+5][ca+5]=s[ca+4][ca+5]='e';
                s[ca+3][ca+5]=s[ca+2][ca+5]='f';
                s[ca+1][ca+5]=s[ca+1][ca+4]='g';
                s[ca+1][ca+3]=s[ca+1][ca+2]='h';
                s[ca+2][ca+2]=s[ca+2][ca+3]='i';
                s[ca+3][ca+4]=s[ca+4][ca+4]='j';
            }
            for(int i=1;i<=n;++i){
                for(int j=1;j<=n;++j)
                    putchar(s[i][j]);
                putchar('\n');
            }
            return;
        }
        if (n%6==1||n%6==2){
            for(int i=1;i<=n/6-1;++i){
                int ca=6*(i-1);
                s[ca+1][ca+1]=s[ca+2][ca+1]='a';
                s[ca+1][ca+4]=s[ca+2][ca+4]='b';
                s[ca+1][ca+5]=s[ca+1][ca+6]='c';
                s[ca+2][ca+5]=s[ca+2][ca+6]='d';
                s[ca+3][ca+2]=s[ca+4][ca+2]='e';
                s[ca+3][ca+3]=s[ca+3][ca+4]='f';
                s[ca+3][ca+5]=s[ca+4][ca+5]='g';
                s[ca+4][ca+3]=s[ca+4][ca+4]='h';
                s[ca+5][ca+1]=s[ca+5][ca+2]='i';
                s[ca+6][ca+1]=s[ca+6][ca+2]='j';
                s[ca+5][ca+3]=s[ca+6][ca+3]='k';
                s[ca+5][ca+6]=s[ca+6][ca+6]='l';
            }
            int ca=6*(n/6-1);
            if (n%6==1){
                s[ca+1][ca+1]=s[ca+1][ca+2]='a';
                s[ca+1][ca+3]=s[ca+1][ca+4]='b';
                s[ca+1][ca+6]=s[ca+2][ca+6]='c';
                s[ca+2][ca+1]=s[ca+3][ca+1]='d';
                s[ca+4][ca+1]=s[ca+5][ca+1]='e';
                s[ca+2][ca+2]=s[ca+2][ca+3]='f';
                s[ca+3][ca+3]=s[ca+3][ca+4]='g';
                s[ca+4][ca+5]=s[ca+5][ca+5]='h';
                s[ca+6][ca+5]=s[ca+6][ca+6]='i';
                s[ca+6][ca+2]=s[ca+7][ca+2]='j';
                s[ca+7][ca+4]=s[ca+7][ca+5]='k';
                s[ca+7][ca+6]=s[ca+7][ca+7]='l';
                s[ca+3][ca+7]=s[ca+4][ca+7]='m';
                s[ca+5][ca+7]=s[ca+6][ca+7]='n';
            }
            if (n%6==2){
                s[ca+1][ca+1]=s[ca+1][ca+2]='a';
                s[ca+2][ca+1]=s[ca+2][ca+2]='b';
                s[ca+1][ca+3]=s[ca+2][ca+3]='c';
                s[ca+1][ca+4]=s[ca+2][ca+4]='d';
                s[ca+3][ca+1]=s[ca+4][ca+1]='e';
                s[ca+3][ca+2]=s[ca+4][ca+2]='f';
                s[ca+3][ca+3]=s[ca+3][ca+4]='g';
                s[ca+4][ca+3]=s[ca+4][ca+4]='h';
                ca+=4;
                s[ca+1][ca+1]=s[ca+1][ca+2]='a';
                s[ca+2][ca+1]=s[ca+2][ca+2]='b';
                s[ca+1][ca+3]=s[ca+2][ca+3]='c';
                s[ca+1][ca+4]=s[ca+2][ca+4]='d';
                s[ca+3][ca+1]=s[ca+4][ca+1]='e';
                s[ca+3][ca+2]=s[ca+4][ca+2]='f';
                s[ca+3][ca+3]=s[ca+3][ca+4]='g';
                s[ca+4][ca+3]=s[ca+4][ca+4]='h';
            }
            for(int i=1;i<=n;++i){
                for(int j=1;j<=n;++j)
                    putchar(s[i][j]);
                putchar('\n');
            }
        }
    }
}t;
int main(){
    t.run();
    return 0;
}

Measured memory_bytes: 2176