/*
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("Hello world!\n");
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int arr[12][11]={};
int i, j;
//1. 보드판 입력받기
for(i=1;i<=11;i++)
{
for(j=1;j<=10;j++)
{
scanf("%d",&arr[i][j]);
}
}
//2.진격하기 + 출력하기
for (j=1;j<=10;j++)
{
if(arr[11][j]==1)
{
for (i=10;i>=1;i--)
{
if(arr[i][j]>0)//블럭 장애물에 부딪혀서 실패시
{
printf ("%d crash\n",j);
break;
}
else if(arr[i][j]<0) //구덩이에 떨어져서 실패시
{
printf ("%d fall\n",j);
break;
}
else if (i==1)
{
printf ("%d safe\n",j);
break;
}
}
}
}
}
*/
/*
#include <stdio.h>
int main()
{
int arr[101][101]={0};
int h,w,n,l,d,x,y,i,j;
scanf ("%d %d %d",&h,&w,&n);
for (i=1;i<=n;i++)
{
scanf ("%d %d %d %d",&l, &d, &x, &y);
for (j=0;j<l;j++)
{
if(d==1)
{
arr[x+j][y] =1;
}
else
{
arr[x][y+j]=1;
}
}
}
for (i=1;i<=h;i++)
{
for (j=1;j<=w;j++)
{
printf ("%d ",arr[i][j]);
}
printf ("\n");
}
}
*/
#include <stdio.h>
int main()
{
int arr[51][51]= {0};
int i,j,n,k;
//1. n입력받기
scanf ("%d",&n);
//2. 마방진 채우기
i=1;
j=n/2+1;
for(k=1; k<=n*n; k++)
{
arr[i][j]=k;
// i, j 정하기
if (k%n==0)//넣은 수가 n의 배수
{
i++;
}
else
{
i--;
if (i==0)
{
i=n;
}
j++;
if (j==n+1)
{
j=1;
}
}
}
//3. 마방진 출력
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
printf ("%d ",arr[i][j]);
}
printf("\n");
}
}



