#include <iostream>
using namespace std;
const int MAX_SIZE = 50;
int main() {
int mtSize, windLine[MAX_SIZE + 1][MAX_SIZE + 1];
cin >> mtSize;
for (int line = 1; line <= mtSize; ++line) {
for (int col = 1; col <= mtSize; ++col) {
cin >> windLine[line][col];
}
}
int lineDir = 0, colDir = 1;
for (int linePos = 1, colPos = 1; linePos <= mtSize && colPos <= mtSize;) {
cout << windLine[linePos][colPos] << " ";
int lPlusC = linePos + colPos;
if (lPlusC % 2 && ((lineDir == 0 && colDir == 1 &&
lPlusC <= mtSize + 1) ||
(lineDir == 1 && colDir == 0 && lPlusC >= mtSize + 1))) {
lineDir = 1;
colDir = -1;
}
if (lPlusC % 2 == 0 && ((lineDir == 0 && colDir == 1 &&
lPlusC >= mtSize + 1) || (lineDir == 1 && colDir == 0 &&
lPlusC <= mtSize + 1))) {
lineDir = -1;
colDir = 1;
}
if ((lineDir == 1 && colDir == -1 && lPlusC < mtSize + 1 &&
colPos == 1) || (lineDir == -1 && colDir == 1 &&
lPlusC >= mtSize + 1 && colPos == mtSize)) {
lineDir = 1;
colDir = 0;
}
if ((lineDir == 1 && colDir == -1 && lPlusC >= mtSize + 1 &&
linePos == mtSize) || (lineDir == -1 && colDir == 1 &&
lPlusC < mtSize + 1 && linePos == 1 )) {
lineDir = 0;
colDir = 1;
}
linePos += lineDir;
colPos += colDir;
lPlusC = linePos + colPos;
}
return 0;
}