from collections import deque N, K = map(int, input().split()) if K == 0: exit(print(-1)) idx = 0 order = deque() for j_start in range(N * 2): i = 0 j = j_start while idx < N * N: if 0 <= i < N and 0 <= j < N: order.append((i, j)) idx += 1 i += 1 j -= 1 if i >= N or j < 0: break ans = [[-1] * N for _ in range(N)] idx = N * N - K + 1 for _ in range(K): i, j = order.popleft() ans[i][j] = idx idx += 1 idx = 1 while order: i, j = order.popleft() ans[i][j] = idx idx += 1 for a in ans: print(*a)