/*#include <stdio.h>
int main()
{
int arr[100][100]={}, a, b, c, k=1;
scanf("%d", &a);
scanf("%d %d", &b , &c);
for(int i=0; i<a; i++)
{
for(int j=0; j<a; j++)
{
arr[i][j]=c+b-j-i-1;
k++;
if(i>b-1)
arr[i][j]=arr[i][j]+(i-b+1)*2;
if(j>c-1)
arr[i][j]=arr[i][j]+(j-c+1)*2;
}
}
for(int i=0; i<a; i++)
{
for(int j=0; j<a; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}
//i가 b보다 큰 ㄱ경우, 그다음부터 2가 커지고 이 수는 점차 증가한다.
//j가 c보다 클 경우, 그다음 부터 2가 커지고 이수는 점 차 증가한다 +2
*/
#include <stdio.h>
int main()
{
int arr[100][100]= {}, a, k=1, l=1;
int i, j;
scanf("%d", &a);
i=0;
j = a/2;
for(k=1; k<=a*a; k++)
{
arr[i][j]=k;
if(k%a==0)
{
if(i==a-1)
{
i=0;
}
else
{
i++;
}
}
else
{
if(i==0)
{
i=a-1;
}
else
{
i--;
}
if(j==a-1)
{
j=0;
}
else
{
j++;
}
}
}
// for(int i=0; i<a; i++)
// {
// for(int j=0; j<a; j++)
// {
// if(i+j<a-1)
// {
// arr[i][j]=0;
// }
// else if((i+j)%2==0)
// {
// arr[i][j]=a-i;
//
// }
// else
// {
// arr[i][j]=a+i;
// }
//
// }
// }
for(int i=0; i<a; i++)
{
for(int j=0; j<a; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}