//p指向line*line二維數組,(start,start)為字符ch的寫入起點
void fill(char *p,int line,int start,char ch)
{
int i;
int j;
if (start==line/2) {
if ((line%2)!=0)
*(p+start*line+start)=ch;
} else {
for (j=start;j<line-start;j++)
*(p+start*line+j)=ch;
for (j=start;j<line-start;j++)
*(p+(line-1-start)*line+j)=ch;
for (i=start;i<line-start;i++)
*(p+i*line+start)=ch;
for (i=start;i<line-start;i++)
*(p+i*line+(line-1-start))=ch;
if (ch=='Z') ch='A';
else ch=ch+1;
fill(p,line,start+1,ch);
}
}
void print(char *p,int line)
{
int i;
int j;
for (i=0;i<line;i++) {
for (j=0;j<line;j++)
printf("%c ",*(p+i*line+j));
printf("\n");
}
}
void main()
{
char ch;
char *p;
int line=0;
scanf("%c,%d",&ch,&line);
p=new char [line*line];
fill(p,line,0,ch);
print(p,line);
delete [] p;
}