/*
#include <stdio.h>
int main()
{
int i, n, j;
int arr[100] = {1,3,2,4,5,7,6};
scanf("%d", &n);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%d%c%d(%d,%d)\t", arr[i], arr[i]>arr[j]?'>':'<',arr[j], i, j);
}
printf("\n");
}
return 0;
}
*/
/*
#include <stdio.h>
int main()
{
int arr[1000]= {};
int n,i,j;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&arr[i]);
}
for(i=0; i<n; i++)
{
printf("%d: ",i+1);
for(j=0; j<n; j++)
{
if(i!=j)
{
if(arr[i] < arr[j])
{
printf("< ");
}
else if(arr[i] == arr[j])
{
printf("= ");
}
else
{
printf("> ");
}
}
}
printf("\n");
}
return 0;
}*//*
#include <stdio.h>
int main()
{
int arr[1000]= {};
int n,i,j;
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&arr[i]);
}
for(i=0; i<n; i++)
{
for(j=i; j<n; j++)
{
printf("%d ", arr[j]);
}
for(j=0;j<i;j++)
{
printf("%d ",arr[j]);
}
printf("\n");
}
}*/
/*
#include<stdio.h>
int main() {
int map[101][101] = {0};
// 세로 가로
int i, j, n, k=1;
scanf("%d", &n);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
map[i][j] = k++;
}
}
0: 0 1 2 3 4
1: 0 1 2 3 4
2: 0 1 2 3 4
for(i=0;i<n; i++) {
for(j=0; j<n; j++) {
printf("(%d,%d)\t", i, j);
}
printf("\n");
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%d ", map[j][i]);
}
printf("\n");
}
}
*/
#include<stdio.h>
int main() {
int i, j, n, k = 1;
int map[101][101] = {0};
scanf("%d", &n);
/*
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
map[i][j] = k++;
}
}
*/
for(i=0; i<n; i++) {
if(i%2==0) {
for(j=0; j<n; j++) {
map[i][j] = k++;
}
}
else {
for(j=n-1; j>=0; j--) {
map[i][j] = k++;
}
}
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
printf("%d ", map[i][j]);
}
printf("\n");
}
}