/*
//Q.1524
#include <stdio.h>
int main()
{
int arr[11][11]={};
int i,j,r,c,n;
for(i=1;i<=9;i++)
{
for(j=1;j<=9;j++)
{
scanf("%d",&arr[i][j]);
}
}
scanf("%d %d",&r,&c);
if(arr[r][c]==1)
{
printf("-1");
}
else
{
n = arr[r-1][c-1] + arr[r-1][c] + arr[r-1][c+1]+ arr[r][c-1]+ arr[r][c+1]+arr[r+1][c-1]+arr[r+1][c]+arr[r+1][c+1];
printf("%d",n);
}
return 0;
}
*/
/*
//1098
#include<stdio.h>
int main()
{
int arr[101][101]= {};
int i,j,k,c,h,w,n,l,d,x,y;
scanf("%d %d",&h,&w);
scanf("%d",&n);
for(k=1; k<=n; k++)
{
scanf("%d %d %d %d",&l,&d,&x,&y);
for(c=1; c<=l; c++)
{
arr[x][y]=1;
if (d==1)
{
x++;
}
else
{
y++;
}
}
}
for(i=1; i<=h; i++)
{
for(j=1; j<=w; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}
*/
#include<stdio.h>
int main ()
{
int arr[50][50]= {};
int i,j,k,n;
//1. n 입력
scanf("%d",&n);
//2. 마방진 채우기
i = 1;
j = n/2+1;
for(k=1; k<=n*n; k++)
{
arr[i][j] = k;
printf("i = %d j = %d k = %d\n",i,j,k);
i--;
if(i==0)
{
i=n;
}
j++;
if(j==n+1)
{
j=1;
}
if(k%n==0)
{
i++;
}
}
// 3. 마방진 출력
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}