#include <cstdio>
#define MAXN 50
int block[MAXN][MAXN];
void outputSquare(int W)
{
for(int i=0;i<W;i++)
{
for(int j=0;j<W;j++)
{
printf("%d ",block[i][j]);
}
printf("\n");
}
}
int main(void)
{
int N,W;
scanf("%d",&N);
W=2*N-1;
int num = 1,i,j,next_i,next_j;
i=0;
j=N-1;
block[i][j]=num;
num++;
for(num=2;num<=W*W;num++)
{
next_i = i-1;
if(next_i<0)
{
next_i=W-1;
}
next_j = j+1;
if(next_j == W)
{
next_j=0;
}
if(block[next_i][next_j]!=0)
{
next_i = i+1;
if(next_i==W)
{
next_i = 0;
}
next_j = j;
}
block[next_i][next_j] = num;
i = next_i;
j = next_j;
}
outputSquare(W);
return 0;
}