#include <iostream>
#include <vector>
typedef std::vector<int> row;
typedef std::vector<row> matrix;
void print_matrix(matrix m)
{
int k = 1;
for (int i = 0; i < (int)m.size(); i++)
{
if (i % 2 == 0)
{
for (int j = 0; j < m[i].size(); j++)
{
if(j % 2 == 0)
{
m[i][j] = k++;
std::cout << m[i][j] << " ";
}
else
{
std::cout << " ";
}
}
}
else
{
for (int j = m[i].size(); j >=0; j--)
{
if (j % 2 == 0)
{
m[i][j] = k++ ;
std::cout << m[i][j] << " ";
}
else
{
std::cout << " ";
}
}
}
std::cout << "\n";
}
}
int main(){
int n;
std::cin >> n;
std::vector <std::vector<int>> a(n, std::vector<int>(n));
print_matrix(a);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdHlwZWRlZiBzdGQ6OnZlY3RvcjxpbnQ+IHJvdzsKdHlwZWRlZiBzdGQ6OnZlY3Rvcjxyb3c+IG1hdHJpeDsKCnZvaWQgcHJpbnRfbWF0cml4KG1hdHJpeCBtKQp7CglpbnQgayA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IChpbnQpbS5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICAJaWYgKGkgJSAyID09IDApCiAgICAgICAgCXsKICAgICAgICAJCWZvciAoaW50IGogPSAwOyBqIDwgbVtpXS5zaXplKCk7IGorKykKICAgICAgICAJCXsKICAgICAgICAJCQlpZihqICUgMiA9PSAwKQogICAgICAgIAkJCXsKICAgICAgICAJIAkJCW1baV1bal0gPSBrKys7CiAgICAgICAgCSAJCQlzdGQ6OmNvdXQgPDwgbVtpXVtqXSA8PCAiICI7CiAgICAgICAgCQkJfQogICAgICAgIAkJCWVsc2UKICAgICAgICAJCQl7CiAgICAgICAgCQkJCXN0ZDo6Y291dCA8PCAiICI7CiAgICAgICAgCQkJfQogICAgICAgIAkJfQogICAgICAgIAl9CiAgICAgICAgCWVsc2UKICAgICAgICAJewogICAgICAgIAlmb3IgKGludCBqID0gbVtpXS5zaXplKCk7IGogPj0wOyBqLS0pCiAgICAgICAgCXsKICAgICAgICAJCWlmIChqICUgMiA9PSAwKQogICAgICAgIAkJewogICAgICAgIAkJCW1baV1bal0gPSBrKysgOwogICAgICAgIAkgCQlzdGQ6OmNvdXQgPDwgbVtpXVtqXSA8PCAiICI7CiAgICAgICAgCQl9CiAgICAgICAgCQllbHNlCiAgICAgICAgCQl7CiAgICAgICAgCQkJCXN0ZDo6Y291dCA8PCAiICI7CiAgICAgICAgCQl9CiAgICAgICAgCX0KICAgICAgICAJfQogICAgICAgIAlzdGQ6OmNvdXQgPDwgIlxuIjsKCX0KfQoKaW50IG1haW4oKXsKCQoJaW50IG47CglzdGQ6OmNpbiA+PiBuOwoJc3RkOjp2ZWN0b3IgPHN0ZDo6dmVjdG9yPGludD4+IGEobiwgc3RkOjp2ZWN0b3I8aW50PihuKSk7CgkKCXByaW50X21hdHJpeChhKTsKCQp9