#include<iostream>
using namespace std;
int main(){
int n;
cin >> n;
int a[n][n];
int num=1;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
a[i][j]=0;
}
}
//李雪琴脱口秀之《转圈大王》:转来转去 这个程序也转不出迷宫
//最外层的循环的次数等于循环的圈数
for(int i=0;i<n/2;i++){
//j表示每一圈的边长
int j=n-i*2;
//k循环的次数就是每一圈的边长减1
for(int k=i;k<i+j-1;k++){
a[i][k]=num++;
}
for(int k=i;k<i+j-1;k++){
a[k][i+j-1]=num++;
}
for(int k=i;k<i+j-1;k++){
a[i+j-1][i+j-1-k]=num++;
}
for(int k=i;k<i+j-1;k++){
a[i+j-1-k][i]=num++;
}
}
if(n%2)a[n/2][n/2]=num++;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout << a[i][j] << ' ';
}
cout << endl;
}
}