#include <iostream>
#include <vector>
int main()
{
int n;
std::cin >> n;
std::vector<std::vector<int>> matritsa(n, std::vector<int>(n));
int i = 1;
for(int d = 0; d < n; d++) {
for(int y = 0; y <= d; y++) {
matritsa[y][d] = i++;
}
for(int x = d - 1; x >= 0; x--) {
matritsa[d][x] = i++;
}
}
for(std::vector<int>& row : matritsa) {
for(int x : row) {
std::cout << x << '\t';
}
std::cout << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKaW50IG1haW4oKQp7CiAgICBpbnQgbjsKCiAgICBzdGQ6OmNpbiA+PiBuOwoKICAgIHN0ZDo6dmVjdG9yPHN0ZDo6dmVjdG9yPGludD4+IG1hdHJpdHNhKG4sIHN0ZDo6dmVjdG9yPGludD4obikpOwoKICAgIGludCBpID0gMTsKCiAgICBmb3IoaW50IGQgPSAwOyBkIDwgbjsgZCsrKSB7CiAgICAgICAgZm9yKGludCB5ID0gMDsgeSA8PSBkOyB5KyspIHsKICAgICAgICAgICAgbWF0cml0c2FbeV1bZF0gPSBpKys7CiAgICAgICAgfQoKICAgICAgICBmb3IoaW50IHggPSBkIC0gMTsgeCA+PSAwOyB4LS0pIHsKICAgICAgICAgICAgbWF0cml0c2FbZF1beF0gPSBpKys7CiAgICAgICAgfQogICAgfQoKICAgIGZvcihzdGQ6OnZlY3RvcjxpbnQ+JiByb3cgOiBtYXRyaXRzYSkgewogICAgICAgIGZvcihpbnQgeCA6IHJvdykgewogICAgICAgICAgICBzdGQ6OmNvdXQgPDwgeCA8PCAnXHQnOwogICAgICAgIH0KCiAgICAgICAgc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKICAgIH0KfQo=