#include<bits/stdc++.h>
using namespace std;
const int N = 5500;
int a[N][N];
int visited[N][N];
int dx[4] = {0, 1, 1, -1};
int dy[4] = {1, -1, 0, 1};
int result[260000];
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= n; j++) {
scanf("%d", &a[i][j]);
visited[i][j] = 0;
}
}
int i = 1, j = 1;
int cunt = 1;
result[cunt] = a[i][j];
int k = 4;
int sum = 0;
visited[1][1] = 1;
while (cunt < n * n) {
if (i + dx[k % 4] >= 1 && j + dy[k % 4] >= 1 && i + dx[k % 4] <= n && j + dy[k % 4] <= n && !visited[i + dx[k % 4]][j + dy[k % 4]]) {
i = i + dx[k % 4];
j = j + dy[k % 4];
visited[i][j] = 1;
if (k % 4 == 0 || k % 4 == 2) k++;
cunt++;
result[cunt] = a[i][j];
} else {
k++;
}
}
for (int i = 1; i <= cunt; i++) {
printf("%d ", result[i]);
}
return 0;
}