#参考了点赞数最高的大神的改的
n = int(input())
matrix = [[0]*(n+1) for i in range(n+1)]  #建立二维数组并初始化
#从1开始 到n 结束
i = 1; j = 1
pst = 1  #pst 代表运动方向 1代表向右上移动 -1代表向左下移动
matrix[1][1] = 1 #第一行第一列为1
for k in range(2,n*n+1):
    if i == 1 and j<n and pst == 1:
        j = j+1
        matrix[1][j] = k
        pst = -1           #方向转向左下
    elif j == 1 and i<n and pst == -1:
        i = i+1
        matrix[i][j] = k
        pst = 1
    elif j == n and pst == 1:
        i = i+1
        matrix[i][j] = k
        pst = -1
    elif i == n and pst == -1:
        j = j+1
        matrix[i][j] = k
        pst = 1
    #以上是边界情况
    elif pst == 1:
        i = i - 1
        j = j + 1
        matrix[i][j] = k
    elif pst == -1:
        i = i+1
        j = j-1
        matrix[i][j] = k

for q in range(1,n+1):
    for o in range(1,n+1):
        print(matrix[q][o],end=' ')
    print('\r')