#include <bits/stdc++.h>
using namespace std;
int n, r[102][102],i=2,j=1;
void up(int i, int j){
if(r[i-1][j+1]==0){
i--;
j++;
}
else {
if(r[i-1][j+1]==-1 && r[i][j+1]==0){
j++;
}
else {
if(r[i-1][j+1]==-1 && r[i][j+1]==-1){
i++;
}
}
}
}
void down(int i, int j){
if(r[i+1][j-1]==0){
i++;
j--;
}
else {
if(r[i+1][j-1]==-1 && r[i+1][j]==0){
i++;
}
else {
if(r[i+1][j-1]==-1 && r[i+1][j]==-1){
j++;
}
}
}
}
int main() {
cin>>n;
for(int i=0;i<=n+1;i++){
for(int j=0;j<=n+1;j++){
r[i][j]=-1;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
r[i][j]=0;
}
}
int t=2;
r[1][1]=1;
while(t<=n*n){
r[i][j]=t;
t++;
if(r[i-1][j+1]==0){
up;
}
else{
down;
}
}
for(int i=1;i<n+1;i++){
for(int j=1;j<n+1;j++){
cout<<r[i][j]<<" ";
}
cout<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuLCByWzEwMl1bMTAyXSxpPTIsaj0xOwoKdm9pZCB1cChpbnQgaSwgaW50IGopewogICAgaWYocltpLTFdW2orMV09PTApewoJICAgICAgICAgICAgaS0tOwoJICAgICAgICAgICAgaisrOwoJICAgICAgICB9CgkgICAgICAgIGVsc2UgewoJICAgICAgICAgICAgICAgIGlmKHJbaS0xXVtqKzFdPT0tMSAmJiByW2ldW2orMV09PTApewoJICAgICAgICAgICAgICAgICAgICBqKys7CgkgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgICAgIGVsc2UgewoJICAgICAgICAgICAgICAgICAgICBpZihyW2ktMV1baisxXT09LTEgJiYgcltpXVtqKzFdPT0tMSl7CgkgICAgICAgICAgICAgICAgICAgICAgICBpKys7CgkgICAgICAgICAgICAgICAgICAgIH0KCSAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCgp2b2lkIGRvd24oaW50IGksIGludCBqKXsKICAgIGlmKHJbaSsxXVtqLTFdPT0wKXsKICAgICAgICBpKys7CiAgICAgICAgai0tOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYocltpKzFdW2otMV09PS0xICYmIHJbaSsxXVtqXT09MCl7CiAgICAgICAgICAgIGkrKzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGlmKHJbaSsxXVtqLTFdPT0tMSAmJiByW2krMV1bal09PS0xKXsKICAgICAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKCgppbnQgbWFpbigpIHsKCWNpbj4+bjsKCWZvcihpbnQgaT0wO2k8PW4rMTtpKyspewoJICAgIGZvcihpbnQgaj0wO2o8PW4rMTtqKyspewoJICAgICAgICByW2ldW2pdPS0xOwoJICAgIH0KCX0KCWZvcihpbnQgaT0xO2k8PW47aSsrKXsKCSAgICBmb3IoaW50IGo9MTtqPD1uO2orKyl7CgkgICAgICAgIHJbaV1bal09MDsKCSAgICB9Cgl9CglpbnQgdD0yOwogICAgclsxXVsxXT0xOwoJICAgIHdoaWxlKHQ8PW4qbil7CgkgICAgICAgIHJbaV1bal09dDsKCSAgICAgICAgdCsrOwoJICAgICAgICBpZihyW2ktMV1baisxXT09MCl7CgkgICAgICAgICAgICB1cDsKCSAgICAgICAgfQoJICAgICAgICBlbHNlewoJICAgICAgICAgICAgZG93bjsKCSAgICAgICAgfQoJICAgICAgICB9CgkgICAgICAgIAoJICAgICAgICAKCSAgICAKCSAgICAKCWZvcihpbnQgaT0xO2k8bisxO2krKyl7CgkgICAgZm9yKGludCBqPTE7ajxuKzE7aisrKXsKCSAgICAgICAgY291dDw8cltpXVtqXTw8IiAiOwoJICAgIH0KCSAgICBjb3V0PDxlbmRsOwoJfQoKfQo=