#include <iostream>
using namespace std;
int main(){
int n,y/*列*/,x/*行*/,m=1;
cin>>n;
int a[n][n];
for (int i=0; i<n; i++) {
for (int j=0; j<n; j++) {
a[i][j]=0;
}
}
a[0][n/2]=m;
x=0;
y=1;
m=1;
for(int i=0;i<n*n;i++){
if(x==0){
x=n-1;
}
else x-=1;
if(y==n-1){
y=0;
}
else y+=1;
if(a[x][y]==0){
m++;
a[x][y]=m;
}
else{
if(x==n-1){
x=0;
}
else x+=1;
m++;
a[x][y]=m;
}
if(m>=n*n){
break;
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<a[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
9 1 5
3 4 8
6 7 2
1~3填数正确,从4开始,整个方阵直接乱掉