#include<stdio.h>
//void pp(int n)//打印n*n的图形
//{
// _ _ _ _
// |_|_|_| _|
// |_|_|_| _|
// |_|_|_| _|
// int i,j;
// for(i=0;i<n;i++)
// {
// printf(" _");
// }
// printf("\n");
// for(i=0;i<n;i++)
// {
// printf("|_|");
// for(j=0;j<n-1;j++)
// {
// printf("_|");
// }
// printf("\n");
// }
//}
int main()
{
//148 8.4 n阶魔方方阵
int n,i,j,k;
scanf("%d",&n);
int arr[n][n];
if(n%2==0)
{
return 0;
}
//先将二维数组赋值为0
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
arr[i][j]=0;
}
}
i=0;
j=n/2;
arr[i][j]=1;
for(k=2;k<=n*n;k++)
{
i=i-1;
j=j+1;
if(i<0&&j==n)
{
i=i+2;
j=j-1;
}
else{
if(i<0)
i=n-1;
if(j==n)
j=0;
}
if(arr[i][j]==0)
{
arr[i][j]=k;
}
else
{
i=i+2;
j=j-1;
arr[i][j]=k;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",arr[i][j]);
}
printf("\n");
}
//pp(n);
return 0;
}