/*#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int arr[51][51] = {0};
int i = 0, j = 0, dir = 0;
for (int k = 1; k <= n * n; k++) {
arr[i][j] = k;
if (dir==0) {
if (j+1<n&&arr[i][j+1]==0) {
j++;
} else {
dir = 1;
i++;
}
}
else if (dir==1) {
if (i+1<n&&arr[i+1][j]==0) {
i++;
} else {
dir = 2;
j--;
}
}
else if (dir==2) {
if (j-1>=0 &&arr[i][j-1]==0) {
j--;
} else {
dir = 3;
i--;
}
}
else if (dir == 3) {
if (i-1>=0&&arr[i-1][j]== 0) {
i--;
} else {
dir = 0;
j++;
}
}
}
for (int i=0;i<n;i++) {
for (int j=0;j<n;j++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}*/
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
int arr[15][15] = {0};
int i = n - 1, j = 0, dir = 0;
for (int k = 1; k <= n * n; k++) {
arr[i][j] = k;
if (dir == 0) {
if (j + 1 < n && arr[i][j + 1] == 0) {
j++;
}
else {
dir = 1;
i--;
}
}
else if (dir == 1) {
if (i-1 >= 0 && arr[i-1][j]==0){
i--;
}
else {
dir=2;
j--;
}
}
else if (dir==2) {
if (j-1>=0&&arr[i][j-1]==0){
j--;
}
else {
dir = 3;
i++;
}
} else if (dir == 3) {
if (i + 1 < n && arr[i + 1][j] == 0){
i++;
}
else {
dir=0;
j++;
}
}
}
for (int i=0;i<n;i++) {
for (int j = 0; j < n; b++) {
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}



