#include<iostream>

#include<vector>

#include<iomanip>


using namespace std;


vector<int> arr;


int main(void)

{

int n,i,j=0,cnt=0, tmp, tmp2, tmp3, num=0,chk=1,chk2=0;

cin >> n;


tmp = n*n;

tmp2 = -1;

tmp3 = n;

arr.resize(tmp);


for (i = 0; i < tmp; i++)

{

while (chk == 1)

{

if (chk2 == 0)

tmp2++;

if (chk2 == 1)

j++;

arr[tmp3 * j + tmp2] = ++num;

cnt++;

if (n == cnt)

break;

}

chk2++;

n--;

i += cnt;

cnt = 0;


if (chk2 % 2 == 0)

{

chk *= -1;

chk2 = 0;

n++;

}

while (chk == -1)

{

if (chk2 == 0)

tmp2--;

if (chk2 == 1)

j--;


arr[tmp3*j + tmp2] = ++num;

cnt++;


if (cnt == n)

break;

}

i += cnt-1;

cnt = 0;

}


for (i = 0; i < tmp; i++)

{

if (i%tmp3 == 0)

cout << endl;

cout << setw(4)<<arr[i];

}

cout << endl<<endl;

return 0;

}