n = int(input())
matrix = [[0 for _ in range(n)] for _ in range(n)]
k = 1
for sum_idx in range(2 * n - 1):
if sum_idx % 2 == 0:
# 从下往上遍历对角线(↗️)
i = min(sum_idx, n - 1)
j = sum_idx - i
while i >= 0 and j < n:
matrix[i][j] = k
k += 1
i -= 1
j += 1
else:
# 从上往下遍历对角线(↙️)
j = min(sum_idx, n - 1)
i = sum_idx - j
while j >= 0 and i < n:
matrix[i][j] = k
k += 1
i += 1
j -= 1
# 打印矩阵
for row in matrix:
print(' '.join(str(elem) for elem in row))
# 00 ->/ 01 10 \|/ / 20 11 02 -> / 03 12 21 30 -> ||31 22 13 \|/ / 23 32 -> / 33