#include<iostream>
using namespace std;
int main(){
	int n,i,j,s=1,k,a,t,h=0;
    cin>>n;
    int b[n][n];
    k=n-1;
    for(i=0;i<n;i++){
    	for(j=0;j<n;j++) b[i][j]=0;
	}
    for(j=0;j<n;j++){
    	b[0][j]=s;
    	s++;
	}
	for(a=1;a<=n/2;a++){
		for(t=0;t<k;t++){
			if(b[a+t][n-a]!=0){
				h=1;
				break;
			}else{
				b[a+t][n-a]=s;
				s++;
			}	
		}
		for(t=1;t<=k;t++){
			if(b[a+k-1][n-a-t]!=0){
				h=1;
				break;
			}else{
				b[a+k-1][n-a-t]=s;
				s++;
			}
		}
		k--;
		for(t=1;t<=k;t++){
			if(b[a+k-t][n-a-k-1]!=0){
				h=1;
				break;
			}else{
				b[a+k-t][n-a-k-1]=s;
				s++;	
			}
			
		}
		for(t=1;t<=k;t++){
			if(b[a][n-a-k-1+t]!=0){
				h=1;
				break;
			}else{
				b[a][n-a-k-1+t]=s;
				s++;	
			}
		}
		k--;
		if(h==1) break;
	}
	for(i=0;i<n;i++){
		for(j=0;j<n;j++) printf("%3d",b[i][j]);
		cout<<endl;
	}
}
/**************************************************************
	Problem: 1208
	User: admin
	Language: C++
	Result: Accepted
	Time:9 ms
	Memory:2076 kb
****************************************************************/