#参考了点赞数最高的大神的改的
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')