import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
int n;
//这里的数组大小设置的大一点就行
int a[][]=new int[15][15];
int x=1,y=1,mark=1;
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
a[x][y]=1;
while(mark<n*n) {
while(a[x][y+1]==0 && y+1<=n) {//判断如果向右走到底边界以及右边可能有数的情况
y++;
mark++;
a[x][y]=mark;
}
while(a[x+1][y]==0 && x+1<=n) {//下
x++;
mark++;
a[x][y]=mark;
}
while(a[x][y-1]==0 && y-1>=1) {//左
y--;
mark++;
a[x][y]=mark;
}
while(a[x-1][y]==0 && x-1>=1) {//上
x--;
mark++;
a[x][y]=mark;
}
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=n;j++) {
System.out.printf("%3d",a[i][j]);
}
System.out.println();
}
}
}