#include<bits/stdc++.h>
using namespace std;
vector<vector<int>> anser;
int n;
bool input(){
cin>>n;
if(n==0)return false;
return true;
}
void solve(){
int c = n/2;
int h = n/2+1;
anser.clear();
anser.resize(n);
for(int i=0;i<n;i++){
anser[i].resize(n);
}
int count = 1;
while(1){
if(anser[h][c]==0){
anser[h][c] = count;
}else{
h=(h+n+1)%n;
c=(c+n-1)%n;
anser[h][c] = count;
}
count++;
h=(h+n+1)%n;
c=(c+n+1)%n;
if(count == 1+n*n)return ;
}
}
void output(){
const auto ans = anser;
for(int i=0;i<ans.size();i++){
for(int j=0;j<ans[i].size();j++){
printf("%4d",ans[i][j]);
}cout<<endl;
}
}
int main(){
while(input()){
solve();
output();
}
}