#include <iostream>
#include <cstdio>

using namespace std;
char matrix[80][80];//缓冲数组

int main(){
    int n;
    char a,b;
    bool firstCase = true; // 首个筐叠前不空行
    while(scanf("%d %c %c",&n,&a,&b) != EOF){ //循环读取输入值
        // 空行
        if(firstCase == true){
            firstCase = false;
        }else{
            printf("\n");
        }

        // 数组赋值
        for(int i = 0;i<=n/2;i++){ //i行、i列、j行、j列围成的圈值相同
            int j = n-1-i;
            
            //当前圈为哪个字符
            char c; 
            if((n/2-i)%2 == 0){
                c = a;
            }else{
                c = b;
            }
            //当前圈赋值
            for(int k = i;k<=j;k++){
                matrix[i][k] = c;
                matrix[k][i] = c;
                matrix[j][k] = c;
                matrix[k][j] = c;
            }
        }
        
        // 修改最外筐的角
        if(n!=1){ // n等于1修改后为空(n为奇数)
            matrix[0][0] = ' ';
            matrix[0][n-1] = ' ';
            matrix[n-1][0] = ' ';
            matrix[n-1][n-1] = ' ';
        }
        
        // 输出数组
        for(int i =0;i<n;i++){
            for(int j=0;j<n;j++){
                printf("%c",matrix[i][j]);
            }
            printf("\n");
        }
        
    }
    return 0;
}