#include<iostream>
using namespace std;
int pclt[41][41],n;
void block_of_list(int block_in_list,int y,int x){
if(block_in_list>n*n+1){
return;
}
pclt[y][x]=block_in_list-1;
if(block_in_list1){
block_of_list(2,1,n/2+1);
}
else{
if(y1 && x!=n){
block_of_list(block_in_list+1,n,x+1);
}
else if(xn && y!=1){
block_of_list(block_in_list+1,y-1,1);
}
else if(xn && y==1){
block_of_list(block_in_list+1,y+1,n);
}
else{
if(pclt[y-1][x+1]==0)block_of_list(block_in_list+1,y-1,x+1);
else block_of_list(block_in_list+1,y+1,x);
}
}
}
int main() {
cin>>n;
block_of_list(1,1,n/2+1);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%d",pclt[i][j]);
if(j!=n) printf(" ");
}
if(i!=n)
printf("\n");
}
return 0;
}